Как добавить свою собственную стратегию 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"
}));