У меня есть приложение Express, где я пытаюсь обновить токен доступа Yahoo OAuth 1.0 до истечения этого часа через час, чтобы пользователь не мог повторно войти в систему. Я использую https-паспорт-yahoo-oauth Passport strategy, который работает для первоначального OAuth.Обновить OAuth 1.0 Access Token Использование Passport
Существует стратегия (паспорт-oauth2-refresh) для обновления токена OAuth 2.0, который я не смог получить (я полагаю, очевидные причины).
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);
Я думал, что я мог бы быть в состоянии использовать запрос, и свернуть свой собственный маркер обновления, хотя я немного не уверен с чего начать там. Любая помощь? Очень ценю любые предложения.
Спасибо! Это полностью сработало. Я застрял в конце функции, которую я звоню 30 минут, и похоже, что она обновляет токен соответственно. – Matt