В приложении экспресс-узла, использующем библиотеку паспорта для аутентификации, я конвертирую хранилище сеансов из MemoryStore в connect-couchdb. Страница входа в систему теперь взломана, и я думаю, что это связано с тем, что новое хранилище сеансов достаточно медленное, что оно подсвечивает гонку.Убедитесь, что сеанс-хранилище завершен до переадресации имени пользователя.
Я использую параметр «successReturnToOrRedirect: /» в паспорте, а «session get» для/происходит до того, как «набор сеансов» был записан в базу данных. Я использовал некоторые дополнительные протоколирования через connect-couchdb и код паспорта, чтобы подтвердить это.
Есть ли способ удостовериться, что req.session.save вызывается и завершается до того, как res.redirect получает название как часть успеха в паспорте? Дополнительный обратный вызов, который вы можете передать в authenticate(), заменяет всю встроенную обработку, я надеялся на решение, в котором оно может быть дополнено.
here Также отправленный
Проблема здесь в том, что passport.js дело с деталями низкого уровня проверки подлинности, и нет никакого способа, чтобы вручную вызвать req.session.save, прежде чем он перенаправляет (на успех). Вы можете настроить с помощью обратного вызова, но это заменяет весь обработчик. –
Например, посмотрите на стратегию.success на https://github.com/jaredhanson/passport/blob/master/lib/middleware/authenticate.js –