Как добавить свою собственную стратегию Oauth2 Passport в приложение FeathersJS?

Заранее извиняюсь за то, что может быть очевидным вопросом / ответом, но я продолжаю обыскивать документы и не могу найти его.

Я знаю, что у FeathersJS есть стратегии для Facebook/Twitter/Github - я вижу их в документах. И я знаю, что вы можете делать все виды стратегий авторизации настройки. Все, что я хочу сделать, - это аутентифицировать пользователей через поставщика Oauth2, у которого еще нет предварительно упакованной стратегии. Я не могу найти рабочий пример, который делает это.

Более печально, когда я пытаюсь следовать примерам / документам, я получаю ошибки, поступающие от модулей feathersjs npm, например:

    <...>/node_modules/@feathersjs/authentication-oauth2/lib/index.js:96
      app.passport.use(name, new Strategy(oauth2Settings, verifier.verify.bind(verifier)));
                             ^
TypeError: Strategy is not a constructor

У кого-нибудь есть рабочий пример?

1 ответ

Решение

Эта ошибка означает, что вы не прошли стратегию Passport oAuth2. Вы можете настроить общий адаптер Passport oAuth2, очень похожий на пример в документации:

const oauth2 = require('@feathersjs/authentication-oauth2');
const OAuth2Strategy = require('passport-oauth2').Strategy;

app.configure(oauth2({
  name: 'custom',
  Strategy: OAuth2Strategy,
  authorizationURL: 'https://www.example.com/oauth2/authorize',
  tokenURL: 'https://www.example.com/oauth2/token',
  clientID: EXAMPLE_CLIENT_ID,
  clientSecret: EXAMPLE_CLIENT_SECRET,
  callbackURL: "http://localhost:3000/auth/example/callback"
}));
Другие вопросы по тегам