express-session 在服务器端存储所有会话信息。如果您使用 sql 数据库,您将有一个用于会话的表,如下所示:
sid | sess | expire
R02GJn2GoyaqRyten1BEGbHa0XCbj529 | {"cookie": "originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"mybool":true,"userid":16}
这就是您问题的答案,也是对数据含义的简短说明,sessionID 只是访问仅在服务器端可用的数据的(主)键。
现在从您的问题来看,您似乎打算错误地使用 express-session。
要在您的 express 服务器上使用 express-session,您可以像这样包含它:
const session = require('express-session');
app.use(session({
name : 'mycookie',
secret : 'mysecret',
saveUninitialized : false,
resave : true
}));
在此之后进入所有后续路由的每个请求都将具有.session 属性。在任何情况下,您都不应该自己访问会话 ID,中间件本身会根据 store you used for express-session 对每个请求进行身份验证。
app.get('/givemeasession',function(req,res,next){
req.session.mybool = true;
req.session.somedata = 'mystring';
req.session.evenobjects = { data : 'somedata' };
res.send('Session set!');
});
app.get('/mysession',function(req,res,next){
res.send('My string is '+req.session.somedata+' and my object is '+JSON.stringify(req.session.evenobjects));
});
底线:您永远不需要自己访问 cookie,或者对它做任何事情,因为任何 cookie 身份验证都由中间件自动处理。