0

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

我知道 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

有没有人有一个工作的例子?

4

1 回答 1

2

该错误意味着您没有通过 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"
}));
于 2018-02-17T18:40:52.213 回答