gpt4 book ai didi

javascript - 如何将我的 Passport js 凭据转发到 GitHub?

转载 作者:行者123 更新时间:2023-11-30 15:53:34 28 4
gpt4 key购买 nike

我将 passport.js 与 GitHub 策略一起用于对用户进行身份验证。我已成功实现用户登录,我可以在服务器上查询当前用户的凭据 (req.user)。

现在我希望能够在我的应用程序中使用 GitHub api。由于 CORS,我的设置是这样的:

User Action <-> GET / POST <-> My Web Server <-> GET / POST <-> GitHub

问题是我的网络服务器在代表用户向 GitHub 发出请求时需要传递用户的凭据。

如何将我的用户 session “转发”到 GitHub?

我在我的服务器上使用 superagent 来调用 GitHub API。

最佳答案

解决这个问题有两个部分。首先,需要在 GitHub 触发回调时存储用户的 access-token:

passport.use(new GitHubStrategy({
clientID: gitHubClientId,
clientSecret: gitHubClientSecret,
callbackURL: gitHubCallback
},
(accessToken, refreshToken, profile, cb) => {
cb(null, {accessToken, profile}); // Note that we serialize the access-token
}
));

接下来,您需要在对 GitHub 的请求中包含访问 token 。例如,要创建一个新的 Gist:

request.post('https://api.github.com/gists')
.set('Authorization', 'Token ' + req.user.accessToken) // This is the important bit!
.send(newGist)
.end((error, result) => {
console.log(error, result);
});

关于javascript - 如何将我的 Passport js 凭据转发到 GitHub?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38933376/

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