Express.js 会话在不同网络上不同计算机上的用户之间持续存在吗?

发布于 2024-11-26 05:44:12 字数 463 浏览 1 评论 0原文

我在 Node.js 下使用 Express 时遇到问题。我正在尝试在用户登录时使用会话来存储身份验证详细信息。我遇到的问题是,一旦一个用户登录,任何其他访问者也会在同一用户下登录,即使他们在同一用户下单独网络上的单独机器。

在我看来,它的工作方式更像是应用程序数据存储而不是会话存储。我做错了什么吗?在我看来,我好像在某个地方做了一些愚蠢的事情!

我在 app.configure 中使用此代码:

app.use(express.cookieParser());
app.use(express.session({secret: 'supersecretkeygoeshere'}));

并且我正在获取并设置我的会话变量,如下所示:

var user = express.session.userId;

干杯,

Nathan

I'm having a problem with Express under Node.js. I'm trying to use sessions to store auth details when a user logs in. The problem I'm having is that once one user is logged in, any other visitors are also logged in under the same user, even if they are on a seperate machine on a seperate network.

It appears to me that it's working more like an application data store than a session store. Am I doing something wrong? Seems to me like I'm doing something stupid somewhere!

I'm using this code in app.configure:

app.use(express.cookieParser());
app.use(express.session({secret: 'supersecretkeygoeshere'}));

And I'm getting and setting my session variables like this:

var user = express.session.userId;

Cheers,

Nathan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鸵鸟症 2024-12-03 05:44:12

这不是您使用会话的方式,在请求对象上使用会话变量:

app.get('/login', function(req, res){
  user = loadUser(req.body.username, req.body.password)
  req.session.userId = user.id
})

请参阅文档:
http://expressjs.com/guide.html#session-support

希望有所帮助: D

That's not how you use sessions, use the session var on a request object:

app.get('/login', function(req, res){
  user = loadUser(req.body.username, req.body.password)
  req.session.userId = user.id
})

see docs:
http://expressjs.com/guide.html#session-support

Hope that helps :D

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文