如何将自己的Oauth2 Passport策略添加到FeathersJS应用程序中?

时间:2018-02-16 17:15:29

标签: feathersjs feathers-authentication

提前道歉可能是一个明显的问题/答案,但我一直在搜索文档而无法找到它。

我知道FeathersJS有Facebook / Twitter / Github的插入策略 - 我在文档中看到了这些。我知道你可以做各种自定义授权策略。我所要做的就是通过Oauth2提供商对用户进行身份验证,该提供商还没有预先打包的策略。我找不到一个能够做到这一点的实际例子。

更令人沮丧的是,当我尝试关注examples / docs时,我会收到来自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 个答案:

答案 0 :(得分:2)

该错误意味着您没有通过Passport oAuth2策略。您可以将general Passport oAuth2 adapter设置为与example in the documentation非常相似:

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"
}));