令牌(Google OAuth2)的过期日期与凭据之间的区别是什么?

时间:2017-03-01 09:40:43

标签: javascript google-api google-oauth google-oauth2 google-api-nodejs-client

我想问一下从谷歌返回的令牌对象的过期日期和我们在凭据中设置的时间之间的区别?



oauth2Client.getToken(code, function (err, tokens) {
  // Now tokens contains an access_token and an optional refresh_token. Save them.
  if (!err) {
    oauth2Client.setCredentials(tokens);
  }
});






// Retrieve tokens via token exchange explained above or set them:
oauth2Client.setCredentials({
  access_token: 'ACCESS TOKEN HERE',
  refresh_token: 'REFRESH TOKEN HERE'
  // Optional, provide an expiry_date (milliseconds since the Unix Epoch)
  // expiry_date: (new Date()).getTime() + (1000 * 60 * 60 * 24 * 7)
});




1 个答案:

答案 0 :(得分:1)

我将在不使用Node的情况下解释这一点。这是纯粹的Oauth。

当您从谷歌请求访问时,会向您返回凭据对象,这是一个Json响应,看起来像这样。

{
"access_token" : "ya29.1.AADtN_VSBMC2Ga2lhxsTKjVQ_ROco8VbD6h01aj4PcKHLm6qvHbNtn-_BIzXMw",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/J-3zPA8XR1o_cXebV9sDKn_f5MTqaFhKFxH-3PUPiJ4"
}

Expires_in是Access令牌到期前的秒数。这是一个小时。

在您的请求中向节点发送过期日期不会以任何方式帮助您。 Google已决定访问令牌在其服务器上的有效期限,这不是您可以更改的内容。

刷新令牌只要不被用户删除就有效。