NodeJS Google API客户端:我如何知道访问令牌已过期?

我正在使用Nodejs Google API客户端Oauth进程。 我遵循oauth的代码示例, https://github.com/google/google-api-nodejs-client/blob/master/examples/oauth2.js 。

我有一个问题。 如何检查访问令牌是否过期,以及如何使用刷新令牌再次获取另一个访问令牌?

更具体地说,让我们说访问谷歌+用户configuration文件,所以我使用访问令牌来获取用户configuration文件:

getAccessToken(oauth2Client, function() { // retrieve user profile getUserProfile(client, oauth2Client, 'me', function(err, profile) { if (err) { console.log('An error occured', err); return; } console.log(profile.displayName, ':', profile.tagline); }); }); 

此外,在应用程序的客户端(backbonejs),如果我正在尝试使用谷歌API的JS客户端访问谷歌驱动器API(不谷歌加),我不知道我是否可以使用我得到的访问令牌应用程序(nodejs)的服务器端,或者我必须使用谷歌api JS客户端做另一个OAuth。

确定访问令牌是否过期的最佳做法是尝试并使用它。 尽pipe返回的bundle包含* expires_in *参数,表示访问令牌到期之前的秒数,这是不可靠的,因为它可能随时被其他原因取消和replace。

程序通常是

  1. 尝试使用访问令牌进行呼叫
  2. 如果您收到“未经授权的”响应,请使用referesh令牌获取新的访问令牌。 如果失败,您的许可已被撤销
  3. 尝试再次使用新的访问令牌进行呼叫

如果您使用图书馆进行其他Google API调用,则会自动为您处理。