2

我想问一下谷歌的令牌对象返回期限和我们在凭证中设置的区别?令牌过期日期(Google OAuth2)和凭证之间有什么区别?

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

,我要解释这个无需使用节点。这是纯粹的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是直到访问令牌到期的时间量,以秒为单位。这是一个小时。

在您向节点的请求中发送过期日期不会以任何方式帮助您。谷歌已经决定访问令牌在其服务器上的有效期限,这是你不能改变的。

刷新标记只要不被用户删除,就会生效。

+0

你错了,我在setCredentials中设置了过期日期10秒,10秒后令牌不起作用。 –

+0

这可能是你的NodeJs库中的东西。您正在使用的通用oauth2Client不是专门为Google设计的。图书馆将不会过期。如果您使用访问令牌并在没有使用库的情况下使用它,它仍然可以工作。除非有人认为向我怀疑的图书馆添加撤销。 – DaImTo

+0

是的,它在图书馆https://github.com/google/google-api-nodejs-client/issues/261如果你设置为低,它会过期。 – DaImTo

相关问题