“令牌已过期或撤销”-GoogleOAuth2刷新令牌将在几天内过期
我正在使用谷歌分析 api 来获取分析数据。我尝试使用以下步骤对其进行身份验证:-> 在https://console.developers.google.com/凭据部分中创建 OAuth 客户端 ID 。-> 在同意屏幕中,我已将发布状态设置为测试 -> 在 OAuth 2.0 Playground 中,我使用上面生成的客户端 ID 和客户端机密获得了刷新令牌 -> 然后我使用它来通过它生成访问令牌。
但是几天后刷新令牌似乎一次又一次地过期,尽管提到刷新令牌的有效期是终身的。
回答
我需要使用 nodemailer 从我有权访问的 gmail 帐户发送邮件。即使该帐户属于我,它也会在我的刷新令牌被神秘撤销之前工作几天。谷歌搜索把我带到了这里,我已经观察了一段时间,希望有人能提供解决方案。
正如您所提到的,这似乎只发生在测试/未经验证的应用程序中,我猜谷歌会在几天后撤销您帐户中此类应用程序的令牌。经过多次试验和错误,这就是我所做的。
注意:此解决方案仅适用于您拥有的帐户,否则您必须验证您的应用才能访问其他人的帐户
- 生成一个新的刷新令牌(现有的一个很可能被撤销),如这篇SO 帖子中所述
- 转到您的 Google 帐户仪表板的安全选项卡
- 在“最近的安全活动”部分下,您应该会看到应用的安全警报。
- 单击通知旁边的上下文菜单,然后单击DISMISS
- 此时,您将看到一个选项对话框,您可以在其中指示您对该应用程序的信任级别。我只是继续说我信任开发人员/应用程序,显然。就是这样!刷新令牌应在此之后持续存在。
我在其他任何地方都找不到任何相关的东西。所以,如果它对你有用,请接受这个答案。它可能会帮助别人
回答
另一个答案为我指明了正确的方向,但对我而言,该选项位于其他地方:安全 > 发现安全检查/安全问题 > 应用旁边的上下文菜单 > 关闭