与几乎所有Web应用程序一样,我需要一种方法来引用node.js应用程序中的当前用户. 我有登录/会话系统工作,但我今天注意到,当我在一个浏览器中登录我的应用程序,并在另一个浏览器中查
我有登录/会话系统工作,但我今天注意到,当我在一个浏览器中登录我的应用程序,并在另一个浏览器中查看它时,我可以看到我在第一个浏览器中看到的相同数据.
我目前正在全局app.current_user对象中存储有关当前用户的信息,但我现在意识到这是在所有请求/会话中共享的,因为node.js是单线程的 – 因此,这是一个坏主意.
将引用存储到当前用户的正确方法是什么?当前用户不仅仅是用户数据的哈希,而是Mongoose模型,所以我想存储在cookie中不是一个好主意?
顺便说一句 – 我还存储了用户的设置和一些我不想再次获取的东西,每次我对用户及其设置做一些事情(在单个请求期间可能会发生很多次).我想你可以说我正在缓存当前用户的内存.
目前存储有关当前用户的信息的正确位置似乎在请求对象中.如果您不喜欢将请求对象传递给mongoose或其他模块的想法,那么您需要在路由器/控制器/中间件中进行任何更改.例如,我可以在posts_controller update()操作中为Post模型设置lastModifiedBy用户ID.
您也可以尝试使用相当新的域功能来存储当前用户数据,但在使用Mongoose时,它还没有帮助,因为Mongoose还不支持域:https://github.com/LearnBoost/mongoose/pull/1337