Таким образом, следующий фрагмент показывает, как RedisStore
настроен и подбирает sessionID
из входящих запросов GET. Однако sessionStore.get(req.cookies['connect.sid'])
оценивает по методу undefined
.Как получить данные сеанса из RedisStore (connect-redis) с помощью SessionID?
Не могли бы вы указать, что я делаю неправильно? Пример sessionID
, который возвращается из req.cookies['connect.sid']
выглядит следующим образом:
s:_8pvC4Zju4GjMOvN6Y4ej8SRVYvopn8C.ctuA/+pQnZt96bLgOW1xizHOLI2nBuH4vzO9Agm26Lk
var expressSession = require('express-session');
var RedisStore = require('connect-redis')(expressSession);
var sessionStore = new RedisStore({host: '127.0.0.1', port: 6379});
app.use(expressSession({store: sessionStore,
secret: 'xxxx' }));
app.get("/*", function(req, res, next) {
if(typeof req.cookies['connect.sid'] !== 'undefined') {
console.log('sessionID: ', req.cookies['connect.sid']);
console.log(sessionStore.get(req.cookies['connect.sid']));
}
next();
});
Почему бы не использовать 'req.session'? Если вы не хотите получать данные сеанса для кого-то, кроме пользователя, из текущего запроса? – mscdex
Я пытаюсь получить его с sessionStore, чтобы аутентифицировать пользователя с помощью socket.io. – Matthias