【问题标题】:Invalid grant error message and invalid tokens after a week一周后出现无效授权错误消息和无效令牌
【发布时间】:2022-01-29 01:57:14
【问题描述】:

环境详情

  • 节点版本:v12.22.8
  • NPM 版本:6.14.15
  • google api 版本:72.0.0
  • google auth 库版本:7.0.4
  • 环境变量:clientIdclientSecretredirectUri

问题

  • 谷歌云功能已实现并正在使用来自googleApisgmail 服务和来自google-auth-library 包的oAuth2Client
  • 令牌在登录 gmail 服务帐户时创建,并存储在需要令牌时从中读取的数据库中
  • 通过在刷新令牌的云函数上设置 cron 作业,每小时刷新一次令牌
  • 一周后,即使每小时刷新一次,令牌也会失效

应用中使用的云函数

云功能部署在 GCP 上 函数1)2) 只被触发一次 函数3) 每小时设置一次 cron 作业 在函数4) 上设置每天的 cron 作业

整个问题,一点解释,一点代码在这里提交:github issue

【问题讨论】:

  • 您使用的服务帐号授权?请编辑您的问题并包含您的代码。

标签: node.js google-cloud-platform oauth-2.0 google-api google-api-nodejs-client


【解决方案1】:

我可以通过您在 Github 上发布的代码看到您正在使用 Oauth2 来授权您的用户。您没有使用服务帐户身份验证。

new googleAuth.OAuth2Client({ clientId, clientSecret, redirectUri})

正在测试的应用的刷新令牌会在 7 天后过期。

将您的应用程序修复到生产环境中。

Refresh token

为外部用户类型配置了 OAuth 同意屏幕且发布状态为“正在测试”的 Google Cloud Platform 项目发出了一个在 7 天后到期的刷新令牌。

设置为生产

在 oauth2 同意屏幕下转到您的项目的谷歌云控制台

【讨论】:

  • 谢谢,现在我知道是什么原因造成的了,但是我如何将应用程序置于生产模式,我是否在 gcp 中设置?
  • 它在 Google 云控制台中的同意屏幕下。抱歉应该在我的回答中提到如何设置它?
  • 非常感谢您的回答,甚至向我展示了如何设置它?
猜你喜欢
  • 1970-01-01
  • 2019-10-17
  • 2014-08-22
  • 2017-03-28
  • 2016-06-08
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多