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