如何使用refreshAccessToken方法在google-api-nodejs-client中生成新的accessstoken

时间:2013-11-13 07:17:55

标签: node.js google-api google-api-nodejs-client

我看到this pull request添加了一种使用保存的刷新令牌刷新访问令牌的方法。我不清楚如何使用它。我已从原始getToken请求中保存了令牌(包括刷新令牌),现在我正在新会话中从数据库中检索令牌。如何在OAuth2Client上设置凭据,以便我可以调用refreshAccessToken并获取新的accessstoken?

2 个答案:

答案 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对象并另外将凭证对象传递给回调