Google Calendar API 的刷新令牌过期时间?

问题描述 投票:0回答:1

在我的nodejs服务器中,我使用'@google-cloud/local-auth'库在日历中创建事件, 当我对谷歌日历进行身份验证时,它会返回一个带有refresh_token的客户端。这个refresh_token的过期时间是多少?

  public async authorize(): Promise<any> {
    let authClient: any = await this.getSavedCredentialsIfExist();
    if (authClient) {
      return authClient;
    }

    authClient = await authenticate({
      scopes: ['https://www.googleapis.com/auth/calendar'],
      keyfilePath: CREDENTIALS_PATH
    });

    console.log('authClient', authClient);

    if (authClient?.credentials) {
      await this.saveCredentials(authClient.credentials.refresh_token);
    }
    return authClient;
  }

返回的客户详细信息:

{
   "type":"authorized_user",
   "client_id":"***",
   "client_secret":"***",
   "refresh_token":"***"
}

我查看了 Google Calendar API 文档,但没有找到答案。

node.js oauth-2.0 google-oauth google-calendar-api google-api-nodejs-client
1个回答
0
投票

请参阅oauth2#过期

刷新令牌被设计为长期有效且不会过期。对于谷歌来说,有几种方法可以让它们过期。

  • 用户已撤销您的应用程序的访问权限。
  • 刷新令牌已六个月未使用。
  • 用户更改了密码,刷新令牌包含 Gmail 范围。
  • 用户帐户已超出授予的(实时)刷新令牌的最大数量。
  • 如果管理员将应用程序范围内请求的任何服务设置为“受限”(错误为 admin_policy_enforced)。
  • 对于 Google Cloud Platform API - 可能超出了管理员设置的会话长度。

为外部用户类型配置 OAuth 同意屏幕且发布状态为“测试”的 Google Cloud Platform 项目将被授予

refresh token expiring in 7 days
,除非请求的唯一 OAuth 范围是姓名、电子邮件地址和用户个人资料的子集(通过 userinfo.email、userinfo.profile、openid 范围或其 OpenID Connect 等效项)。

注意最后一部分,这是测试而不是验证。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.