gpt4 book ai didi

node.js - 使用 Passport 刷新 Yahoo OAuth 1.0 访问 token

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:42 24 4
gpt4 key购买 nike

我有一个 Express 应用程序,我试图在 Yahoo OAuth 1.0 访问 token 在一小时后过期之前刷新它,这样用户就不必重新登录。我正在使用 https-passport-yahoo-oauth Passport 策略,该策略适用于初始 OAuth。

这里有一个用于刷新 OAuth 2.0 token 的策略(passport-oauth2-refresh),但我无法使用该策略(我想这是明显的原因)。

雅虎文档关于在此处刷新访问 token => https://developer.yahoo.com/oauth/guide/oauth-refreshaccesstoken.html

下面是我的初始 OAuth 代码。然后我如何才能根据此将过​​期或即将过期的 token 交换为新的 token ?

passport.serializeUser(function(user, done) {
done(null, user);
});

passport.deserializeUser(function(obj, done) {
done(null, obj);
});


var strategy = new YahooStrategy({
consumerKey: APP_KEY,
consumerSecret: APP_SECRET,
callbackURL: (process.env.APP_URL || require('./conf.js').APP_URL) + 'auth/yahoo/callback'
},
function(token, tokenSecret, profile, done) {
var data = profile._json;

var userObj = {
id: profile.id,
name: data.profile.nickname,
avatar: data.profile.image.imageUrl,
dateJoined: new Date().getTime(),
lastUpdated: new Date().getTime(),
lastVisit: new Date().getTime(),
accessToken: token,
tokenSecret: tokenSecret,
sessionHandle: profile.oauth_session_handle
};
return done(null, userObj);
}
);

passport.use(strategy);

我在想我也许可以使用Request,并滚动我自己的 token 刷新,尽管我有点不确定从哪里开始。有什么帮助吗?非常感谢任何建议。

最佳答案

是的,您完全可以使用 request 来做到这一点:

request.post('https://api.login.yahoo.com/oauth/v2/get_token', {
oauth: {
consumer_key:'...',
consumer_secret:'...',
token:'...',
token_secret:'...',
session_handle:'...'
}
}, function (err, res, body) {})

或者您可以使用Purest以及。请注意,当用户首次授权您的应用时,您应该存储 session_handle

关于node.js - 使用 Passport 刷新 Yahoo OAuth 1.0 访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32299553/

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