3

如果我为我的用户保存了刷新令牌,我不会有兴趣尝试获取新令牌。谷歌只给了他们一个小时的代币,让我完全措手不及。这意味着刷新令牌几乎是必需的,除非您希望您的用户必须每小时重新登录一次站点或移动应用程序。

所以现在我有一群没有刷新令牌的用户。Google 没有为我提供带有approval_prompt=forceorprompt=none和的新版本access_type=offline

尽管之前发送了一个或多个令牌,但我需要强制 Google 发送刷新令牌。一个人如何在没有令牌的情况下撤销刷新令牌?

我宁愿不必要求每个用户手动撤销它。这应该务实地完成——尤其是考虑到移动开发。

如果有可用的 JavaScript 解决方案,我想专注于它。

我看到以前的帖子有同样的问题,但它处于完全不同的上下文中,从未收到与 Google OAuth2.0 相关的答案:
当没有可用的刷新令牌时,如何刷新或撤销 OAuth2.0 访问/刷新令牌?

4

3 回答 3

2

他们说

https://developers.google.com/accounts/docs/OAuth2WebServer#refresh

可以通过发送包含刷新令牌(您没有)和访问令牌的请求来撤销新令牌。

令牌可以是访问令牌或刷新令牌。如果令牌是访问令牌并且有相应的刷新令牌,则引用令牌也将被撤销。

于 2013-09-02T18:04:00.410 回答
2

而不是通过approval_prompt=force,而是您需要通过prompt=consent,这将使用户再次同意离线访问 - 这反过来将为您生成一个新的刷新令牌。

于 2016-02-28T05:32:34.223 回答
0

在 2020 年,这并没有解决问题。我需要refresh_token在 OAuth2 中为 Google API 生成一个新的。

我通过这样做解决了它:

  1. 单击 API 和服务https://console.cloud.google.com/apis/credentials
  2. 进入“OAuth 同意屏幕”。
  3. 更改应用程序的名称,例如:“My NameApp2”。
  4. 现在,再次在您的应用程序 ( ) 上执行您的 POST 请求https://accounts.google.com/o/oauth2/v2/auth?...并查看您的新refresh_token.
于 2020-12-06T07:54:39.017 回答