Я искал в другом месте этот ответ, но ничего не нашел.Конфигурация сеанса паспорта необязательна?
Паспортная документация по конфигурации: http://passportjs.org/docs/configure подразумевает, что часть сеанса является необязательной. Позже в документации также подразумевает это когда речь идет о постоянных сеансах входа в системе:
If your application uses persistent login sessions, passport.session() middleware must also be used.
Я знаю, что большинство реальных приложения требуют постоянного сеанса, но для целей обучения, я пытаюсь построить это вверх постепенно и хочу иметь вход в систему и перенаправить на страницу успеха без паспорта, пытаясь сериализовать моего пользователя.
В настоящее время у меня есть и неправильный пароль, и неверное имя пользователя, перенаправляемое на страницу сбоя. Когда я вводим хорошие учетные данные и размещаю пользователя в db, я не перенаправляю страницу успеха. Вместо этого я получаю следующее сообщение об ошибке:
Error: Failed to serialize user into session
Я знаю, добавив следующее будет решить вопрос:
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
Как настроить паспорт не сериализации моего пользователя? Возможно ли это?
Просто используйте сеансы, это буквально просто пара строк кода, чтобы заставить его работать. 'app.use ('session (...));' и 'app.use (passport.session()); вам нужно будет установить пакет экспресс-сессий' npm install express-session' и потребовать его, прежде чем вы сможете используйте его 'var session = require ('express-session')'. Вот и все. – Molda
@Molda некоторые люди предпочитают использовать другой метод отслеживания состояния аутентификации (например, использование JWT или когда вы реализуете webapp, который не будет использоваться браузерами), поэтому я считаю, что это правильный вопрос :) – robertklep
@robertklep Я полностью согласен. Но, как упоминалось в вопросе ** «для учебных целей» **, я думал, что это будет самый простой и быстрый способ заставить его работать, я определенно не пытался рекомендовать его как лучшее решение. Я сам использую JWT. – Molda