Вручную начать сеанс входа в систему, используя Nest JS и Passport - PullRequest
0 голосов
/ 24 января 2020

Я ищу способ программно войти в систему фальшивого пользователя в целях разработки. Конечной целью является то, что я открываю приложение для демонстрации / разработки, и в систему принудительно входит поддельный пользователь (это отключено в рабочей среде)

В настоящее время у меня запущено 3 комплекта промежуточного программного обеспечения:

  1. express-session - Устанавливает поставщика сеанса и хранилища сеансов
  2. Некоторое написанное мной специальное промежуточное ПО, которое просто добавляет моего разработчика к req.session.user
  3. 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.

1 Ответ

0 голосов
/ 24 февраля 2020
...