Можем ли мы использовать 2 разные паспортные локальные стратегии в одном приложении? Если так, то как? - PullRequest
0 голосов
/ 27 февраля 2020

Итак, я разрабатывал это приложение, которое имеет 2 различных уровня аутентификации .

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

На втором уровне каждый из этих участников теперь может войти в свои индивидуальные профили, указав код доступа di-1014 * и получить доступ к своим индивидуальным профилям.

Итак, я успешно реализовал первую часть, используя паспорт js. Но теперь я запутался в том, как я могу аутентифицировать отдельные профили, используя паспорт js. Я попытался создать простую систему аутентификации, которая просто сравнивает хешированный пароль для аутентификации. Но проблема в том, что он слишком базовый c, и я не могу аутентифицировать запросы, как в паспорте.

Так есть ли способ как-нибудь использовать несколько локальных стратегий для паспорта?

1 Ответ

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

Вы можете сделать это, передав дополнительный параметр в passport.use

Примерно так:

  passport.use('level1', new LocalStrategy((email, password, done) => {
    // Authentication stuff
  }));

  passport.use('level2', new LocalStrategy((email, password, done) => {
    // Other authentication stuff
  }));

Затем, когда вы захотите использовать любой из них, вы можете позвонить passport.authenticate('level1') или passport.authenticate('level2') в зависимости от того, какой вам нужен

...