提前道歉可能是一个明显的问题/答案,但我一直在搜索文档而无法找到它。
我知道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
有没有人有一个有效的例子?
答案 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"
}));