我看到this pull request添加了一种使用保存的刷新令牌刷新访问令牌的方法。我不清楚如何使用它。我已从原始getToken请求中保存了令牌(包括刷新令牌),现在我正在新会话中从数据库中检索令牌。如何在OAuth2Client上设置凭据,以便我可以调用refreshAccessToken并获取新的accessstoken?
答案 0 :(得分:14)
我错过了paragraph on setting credentials on the github readme,所以这里有一些示例代码以防其他人需要它。
var googleOauth2Client = new OAuth2Client(googleClientId,googleClientSecret, googleCallbackUrl);
googleOauth2Client.setCredentials({
refresh_token: saved_refresh_token
});
googleOauth2Client.refreshAccessToken(function(err, tokens){
response.send({
access_token: tokens.access_token
});
});
答案 1 :(得分:0)
因为我没有使用过这个库而只是一个猜测。但是我觉得你只需要调用myOAuth2Client.refreshAccessToken(function(err, newCredentials){})
,你已经使用旧令牌实例化了OAuth2Client
对象。 (不知道你是怎么做的,但它可能就像实例化对象然后myOauth2Client.credentials.refresh_token = 'foobar'
一样简单。)如果没有错误,它将修改OAuth2Client.credentials
对象并另外将凭证对象传递给回调