gpt4 book ai didi

node.js - 如何配置 OAuth 服务器发送配置文件信息?

转载 作者:太空宇宙 更新时间:2023-11-04 01:56:04 25 4
gpt4 key购买 nike

我有在端口 8080 上运行的自定义 OAuth 提供程序 (koa2-oauth-server)。

我有一个客户端应用程序,它使用 Passport 通过 OAuth2Strategy 对请求进行身份验证。

以下代码配置 OAuth 的通行证

passport.use(
new OAuth2Strategy({
tokenURL: 'http://localhost:8080/oauth/token',
authorizationURL: 'http://localhost:8080/oauth/authorize',
clientID: 'xxx',
clientSecret: 'xxx',
callbackURL: 'http://localhost:3000/oauth/redirect'
}, (accessToken, refreshToken, profile, done) => {
console.log(profile); // This is always empty object
done(null, profile);
})
);

以下代码生成访问 token

router.post('/oauth/token', oauth.token(),
(ctx,next) => {
// TODO: Profile information not being sent
const userid = ctx.state.oauth.token.user.id;
ctx.body = db.users.find(function(aUser){
return aUser.id == userid;
})
}
);

我想在 Passport 回调函数中接收个人资料信息。我尝试发送第二个代码块中所示的用户个人资料信息,但没有成功。

我尝试阅读 koa2-oauth-servernode-oauth2-server 的代码来弄清楚如何发送配置文件信息,但没有成功。

我应该如何配置 OAuth 提供程序以将配置文件信息发送回客户端?

最佳答案

我检查了passport-oauth2的来源,结果发现这个函数是罪魁祸首

/**
* Retrieve user profile from service provider.
*
* OAuth 2.0-based authentication strategies can overrride this function in
* order to load the user's profile from the service provider. This assists
* applications (and users of those applications) in the initial registration
* process by automatically submitting required information.
*
* @param {String} accessToken
* @param {Function} done
* @api protected
*/
OAuth2Strategy.prototype.userProfile = function(accessToken, done) {
return done(null, {});
};

我重载了 js 文件中的函数以满足我的要求。

关于node.js - 如何配置 OAuth 服务器发送配置文件信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47954902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com