我编写了一个简单的node / express / redis应用程序,它在redis中存储自定义会话ID。有用。但是对于redis来说,我只能在redis中找到sessionID
,而不是jsessionid
。
var sessionStore = new RedisStore({
host: redisHost,
port: redisPort,
db: redisDB
});
app.use(session({
name: 'jsessionid', // access using req.cookies['jsessionid']
secret: 'keyboard cat',
store: sessionStore
}));
app.get('/awesome', function(req, res) {
if(req.session.lastPage) {
res.write('Last page was: ' + req.session.lastPage + '. And session id was: ' + req.sessionID + '. And jsessionid is ' + req.cookies['jsessionid'] + '. ');
}
req.session.lastPage = '/awesome';
res.end('Your Awesome.');
});
因此,当我执行http://localhost:3000/awesome
并重新加载它时,它会按预期打印出以下内容:
“最后一页是:/太棒了。会话ID是:kOnhpfyFQlil76eVXIbIBJTUNU7GzhDG。并且jsessionid是s:kOnhpfyFQlil76eVXIbIBJTUNU7GzhDG.KF3B6TLxMl084VI2rvYw + hz4u / wQr5IL7n + // gnH9mQ。真棒。”
我可以通过以下方式在redis-cli
中找到sessionID:
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> keys *
1) "sess:kOnhpfyFQlil76eVXIbIBJTUNU7GzhDG"
但是我无法在redis中找到jsessionid
。我认为它应该存在于某个地方。请帮忙。
答案 0 :(得分:0)
name
中间件的express-session
选项只是cookie的名称。您可以通过在prefix
配置中设置'sess:'
选项(默认为RedisStore
)来更改前缀。有关您可以设置的更多选项,请参阅here。