【发布时间】:2017-01-07 13:48:09
【问题描述】:
我很难理解 express-session 包中生成的 cookie 的作用。
所以在下面的代码中:
var session = require('express-session')
var store = require('session-file-store')(session)
app.use(session({
name: 'session-id',
secret: 'sdafjlkdashf34khrjke'
saveUninitialized: true,
resave: true,
store: new Store()
})
func auth (req, res, next) {
if (!req.session.user) {
req.session.user = 'admin'
next()
}else {
console.log(req.session)
}
}
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
所以本质上在上面的简单代码 sn-p 中,每当用户向服务器发出请求(例如:localhost:3000/)时,会发生 3 件事:
- 将为该特定客户端创建一个新的会话对象。
- 在该新会话对象中,将为该特定客户端自动附加一个 cookie。
- 最后,由于我使用的是会话文件存储,因此只有 cookie 信息(不是会话对象)会保存到我本地计算机上的
session文件夹中。
现在假设有 50 个 cookie 对象存储在 session 文件夹中,因为有 50 个客户端向我的服务器发出请求。
所以我的问题是,每当这 50 个用户中的一个向我的服务器发出另一个请求时,express-session 如何知道要选择哪个 cookie 对象(来自 session 文件夹)并将其附加到要使用的 req 对象在代码中。
【问题讨论】:
-
好的,所以在做了一些研究之后,我意识到当一个特定的客户端(比如说你的浏览器)向我的服务器发出请求时,然后基于客户端的域(换句话说,IP 地址,我想?有人可以在这里纠正我指的是什么域)服务器知道哪个cookie属于那个客户端。更多解释在这里:*.com/questions/8805958/….
标签: javascript session cookies