Я использую паспорт для аутентификации в Nodejs вот так:
const passport = require('passport');
passport.use(strategies.jwtLogin); //using require('passport-jwt')
const requireAuth = passport.authenticate('jwt', {session: false});
app.get('/', requireAuth, (req, res, next) => next());
Это работает. Мои вопросы:
Каковы различные варианты первого аргумента passport.authetication? Я не вижу опции 'jwt' в документация.
Как эта опция влияет на стратегию, которую я передаю passport.use?
Другими словами, если я поменяю опцию 'jwt' на что-то другое, например blah, как мне изменить стратегию?





Первый аргумент функции Authenticate () - это просто сокращенное имя, определенное в стратегии для его идентификации. Итак, если вы собирались вызвать аутентификацию ('blah', ...), тогда вам нужно иметь стратегию, определенную в вашем паспорте .use (), которая имеет определенное имя «blah».
Если вы посмотрите на исходный код для паспорта-jwt, вы увидите в строке 31, что это сокращенное имя определено.
this.name = 'jwt';
Точно так же, если вы посмотрите на другую стратегию, например паспорт местный (строка 53), вы увидите ее сокращенное имя.
this.name = 'local';
Он настроен таким образом, чтобы вы могли использовать несколько стратегий в одном приложении. Вы можете настроить как jwt, так и local с их собственными операторами Passport.use (), а затем обращаться к каждому отдельно позже в коде, используя Authenticate ('local', ...) или Authenticate ('jwt', ...).
Это могло быть лучше задокументировано в документации на паспорт, но я надеюсь, что это поможет.
Без проблем. Паспорт чрезвычайно мощный, но документация оставляет желать лучшего. В случае сомнений не бойтесь заглядывать в исходный код ... это не так сложно, как можно было бы подумать.