我正在开发一个预算应用程序,一切都很好……或者至少我认为是这样。在 http://budgeter.pattmorter.webfactional.com/ 进行测试!现在您可以登录并添加内容并编辑您的个人资料并且效果很好,唯一的问题是如果其他人在您之后登录,并且您刷新您的页面,它会将您的 session 设置为在您之后登录的人。
我不太清楚为什么会这样,但它与我的主要 app.js
Node 有关。我认为我的问题是,当用户登录时,我在 app.js
中有一个 currentUser
变量,它也传递了所有不同的路由,但我不认为是正确的,因为它导致了这些错误。有人建议更好的方法吗?
我的 app.js
文件在这里 -- https://github.com/M-Porter/bearded-wookie/blob/master/production/app.js
基本上,如果 app.js
空间中没有变量,我不明白如何做我想做的事。任何朝着正确方向的插入都会很棒。
最佳答案
Node.js in Action(好书)建议使用内置的 session 中间件来做这样的事情。它使用签名的 cookie,因此您还需要 cookieParser 中间件。它应该看起来像:
app.use(express.cookieParser('your secret'));
app.use(express.session());
然后您可以访问 req.session 以跟踪您当前的用户。
编辑 1:我只是更仔细地查看了您的代码。看起来您已经在使用 cookieParser 和 session 中间件了。只需尝试将当前用户存储在 session 中。听起来 passport 也可以根据后续请求检索用户名。查看http://passportjs.org/guide/configure/
关于javascript - 多用户问题 Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22028381/