В течение долгого времени Googled, на самом деле не нашел ничего, что сработало до сих пор, так что я решил спросить здесь.Паспорт, кажется, забыл сеанс пользователя
Я пытаюсь получить сеансы для работы с паспортом. Я завершил регистрацию и функцию входа в систему, и это, похоже, работает так, как должно.
Основная проблема заключается в том, что req.isAuthenticated всегда возвращает false. я пробовал обычные вещи:
Убедился app.use (passport.session()) приходит после настройки экспресс-сессии:
...
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(session({
secret: 'somethingsomethingdarkside',
cookie: { maxAge: 1209600000 },
saveUninitialized: false,
resave: false,
// using store session on MongoDB using express-session + connect
store: new MongoStore({
url: configDB.url,
collection: 'sessions'
})
}));
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
...
Я пошел в паспортах request.js файл и сделал некоторые отладки, и я могу видеть, что
this[property/*user*/] = user;
устанавливает значения, я хочу его, и что я думаю, что это должно быть.
Теперь, когда я называю
if (req.isAuthenticated())
это приводит к
this[property/*user*/] == undefined
возвращение ложным. Я также добавил сообщение журнала, сообщающее мне, когда модуль инициализируется, и он делает это только один раз, когда начинается сервер.
Насколько я могу судить, user.deserializeUser так и не называется.
Вид на мой ум заканчивается здесь, любой, кто может мне помочь?
Проверьте u значение 'req.user'? – Haywire
Также как вы определяете «MongoStore»? – Haywire
MongoStore в порядке. Я вижу, что он добавляет новый сеанс каждый раз, когда я вхожу в систему (как и каждый раз, когда я выхожу из системы, не знаю почему.). req.user, по-видимому, не определен, и поначалу это было по уважительной причине (потому что я использовал sessionStorage как идиот, не понимая, что это хранилище для ключей). Теперь, однако, это происходит через req.body.user. Как мне переместить его на req.user? Я добавляю его так же, как и с регистрацией и регистрацией, но, я полагаю, есть некоторое промежуточное ПО Passport, которое сбрасывает некоторые параметры. – Ceteareth