Я ищу способ программно войти в систему фальшивого пользователя в целях разработки. Конечной целью является то, что я открываю приложение для демонстрации / разработки, и в систему принудительно входит поддельный пользователь (это отключено в рабочей среде)
В настоящее время у меня запущено 3 комплекта промежуточного программного обеспечения:
express-session
- Устанавливает поставщика сеанса и хранилища сеансов - Некоторое написанное мной специальное промежуточное ПО, которое просто добавляет моего разработчика к
req.session.user
passport-saml
промежуточному ПО, которое проверяет чтобы проверить, прошел ли пользователь проверку подлинности, и в противном случае отправит его поставщику единого входа.
Прямо сейчас я могу добавить еще несколько промежуточных программ от 1 до 3 и посмотреть, что мой фальшивый пользователь сохраняется в сеансе (во всяком случае, по крайней мере, на время запроса). Тем не менее, очевидно, что я не делаю то, что ожидает промежуточное программное обеспечение passport-saml
, потому что независимо от того, что я установил в сеансе, он всегда думает, что я не аутентифицирован, и перенаправляет меня к поставщику единого входа.
Первый уровень промежуточного программного обеспечения (express-session
) выглядит следующим образом:
session({
secret: config.get('SESSION_SECRET'),
cookie: {
maxAge: 1000 * 60 * 60 * 24 * 7,
},
store,
resave: true,
saveUninitialized: false,
});
Второй уровень промежуточного программного обеспечения выглядит следующим образом:
(req: Request, _: Response, next: NextFunction): void => {
req.session.user = adminUser;
}
А третий уровень промежуточного программного обеспечения - это просто промежуточное программное обеспечение для паспорта .
Я попытался позвонить req.logIn
на шаге 2, но мне пришло сообщение: passport.initialize() middleware not in use
.