Я считаю, что правильно настроили все:Узел паспорта сессии потерял на последующих вызовах
app.configure(function() {
app.use(express.cookieParser('secret message')); // secret it set here in new version of express or connect
app.use(express.bodyParser());
app.use(express.session());
app.use(passport.initialize());
app.use(passport.session());
});
Когда делается запрос на «Войти» с правильными учетными данными:
app.post('/api/login', passport.authenticate('local'), function (req, res, next) {
console.log(req.session.passport); // {"user":"5259f2739d4323000a000003"}
});
req.session.passport
Заселено:
"passport": {"user":"5259f2739d4323000a000003"}
Однако, когда вызов на:
app.post('/api/checklogin', function (req, res, next) {
console.log(req.session.passport); // {}
})
req.session.passport
теряется:
"passport":{}
Оба раза, req.session
выглядит следующим образом:
{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"passport":{}}
** объект Passport является очевидно, разные, хотя, как описано выше
Я предполагаю, что правильно настроил serializeUser
, потому что он правильно устанавливает это свойство.
Я не совсем уверен, как Passport создает сеансовые куки и как эти cookie-файлы могут сохраняться.
Я предполагаю, что req.session.passport
предполагается сохранить свойства пользователя, но, кажется, что объект паспорта либо:
- возвратов на каждом вызове
- не сохраняет свойство Passport в сессии
- Сессия никогда не создавалась
Я боюсь, что, возможно, я пропущу что-то большое - возможно, что-то, что мне может понадобиться, чтобы сделать этот паспорт Не обращайся напрямую для меня.
Я не знаю ни одного способа проверить, создан ли сеанс паспортом.
Любые советы или помощь действительно оценены. Это была многодневная борьба.
Можете ли вы показать свое 'deserializeUser'? – robertklep