使用 Passport 刷新 Yahoo OAuth 1.0 访问令牌
Refresh Yahoo OAuth 1.0 Access Token Using Passport
我有一个 Express 应用程序,我试图在 Yahoo OAuth 1.0 访问令牌一小时后过期之前刷新它,这样用户就不必重新登录。我正在使用 https-passport-yahoo-oauth Passport 策略,它适用于初始 OAuth。
这里有一个用于刷新 OAuth 2.0 令牌的策略 (passport-oauth2-refresh),但我无法开始工作(我想这是显而易见的原因)。
有关刷新访问令牌的 Yahoo 文档 => https://developer.yahoo.com/oauth/guide/oauth-refreshaccesstoken.html
下面是我的初始 OAuth 代码。然后我如何根据这个将过期或即将过期的令牌换成新的令牌?
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 并滚动我自己的令牌刷新,尽管我有点不确定从哪里开始。有什么帮助吗?非常感谢任何建议。
我有一个 Express 应用程序,我试图在 Yahoo OAuth 1.0 访问令牌一小时后过期之前刷新它,这样用户就不必重新登录。我正在使用 https-passport-yahoo-oauth Passport 策略,它适用于初始 OAuth。
这里有一个用于刷新 OAuth 2.0 令牌的策略 (passport-oauth2-refresh),但我无法开始工作(我想这是显而易见的原因)。
有关刷新访问令牌的 Yahoo 文档 => https://developer.yahoo.com/oauth/guide/oauth-refreshaccesstoken.html
下面是我的初始 OAuth 代码。然后我如何根据这个将过期或即将过期的令牌换成新的令牌?
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 并滚动我自己的令牌刷新,尽管我有点不确定从哪里开始。有什么帮助吗?非常感谢任何建议。