javascript - 多用户问题 Node.js

标签 javascript node.js

我正在开发一个预算应用程序,一切都很好……或者至少我认为是这样。在 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/

相关文章:

c# - 如何让memberID从一个页面转移到另一个页面,javascript

javascript - 从 firebase 获取有限的图像

javascript - 单击图像时如何将鼠标坐标传递给支持 bean

javascript - 如何获得所需的自动对焦验证以在 html 表单上工作? - 我的尝试不会生效

linux - Child_process 与模拟?

javascript - jQuery 切换动画仅在 Safari 中失败

node.js - Node JS Redis 客户端连接重试

javascript - 使用 Mocha 在 NodeJS 和 MongoDB 中测试用户模型时没有结果

mysql - 如何防止sequelizer删除数据库

node.js - 在 Node 检查器中运行 super 测试时无法读取 null 的属性 '_host'