我正在使用express.cookieParser
和express.session
进行this short tutorial on sessions in Express:
app.use(express.cookieParser());
app.use(express.session({secret: '1234567890QWERTY'}));
有这段话:
Sessions are accessible through the request object in each route. You can get and set
properties just like you would when handling an object normally. For example, lets set
some session data in the awesome route.
app.get('/awesome', function(req, res) {
req.session.lastPage = '/awesome';
res.send('Your Awesome.');
});
两个问题:
req.sesssion
中提到的会话是一个发送给客户端的cookie,其中包含由node / express创建的sessionID
,现在它将通过get请求返回。这是对的吗?
那么在res
中,此session
对象会自动附加到res
,然后再发回,更新客户端Cookie?
答案 0 :(得分:3)
如果您正在使用会话。浏览器只会在Cookie中包含会话ID 。您放在req.session
变量中的内容将保存在服务器端(或您配置为快速保存的位置)。
在浏览器的cookie中设置的会话ID将作为服务器识别要为该浏览器加载的会话信息的密钥。
答案 1 :(得分:1)
不完全是。 cookie只是一个随机值,使用您在配置时放入的密码字符串进行签名。会话对象的实际内容(在您的示例中,{lastPage:' / awesome'})存储在会话存储中,您还应该在Express配置中的某个位置进行配置。大多数演示应用程序可以使用默认的MemoryStore,但生产应用程序总是使用RedisStore,MongoStore等非易失性存储。