我使用express支持我的会话管理:
app.use(express.cookieParser('your secret here'));
app.use(express.session({secret: 'mysecretcode'}));
我要从请求中提取并保存sessionId。但是,我从req.sessionID获得的ID与cookie中发送的ID不同:
req.sessionID --> 'E7oSoKmQfcMKnk5_jA5tF5vR'
cookie.connect.sid --> 's%3AE7oSoKmQfcMKnk5_jA5tF5vR.DQnYdDDcFn8K2JJHMgWL5DTzNYYwIU3DA5a10WImA7U';
答案 0 :(得分:4)
我读了connect.session的源代码,得到了:
key = options.key || 'connect.sid'
和
var val = 's:' + signature.sign(req.sessionID, secret);
val = cookie.serialize(key, val);
debug('set-cookie %s', val);
res.setHeader('Set-Cookie', val);
因此,当响应的'header'事件被触发时,connect会将cookie设置为响应头,当你调用response.end()时,connect会将会话数据保存到存储中。
就是这样。