获取谷歌oAuth刷新令牌一旦过期

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

我开发了一个与 google api 集成的应用程序。 第一部分最初进展顺利:

  1. 提示同意,首次获取access token,刷新token。 这样就可以了。

问题是当我想根据刷新令牌获取下一个有效访问令牌序列和刷新令牌

我尝试过的端点:

https://oauth2.googleapis.com/token

正文(x-www-form-urlencoded): 客户 ID:xxx 客户端秘密:xxx 刷新令牌:xxx grant_type:refresh_token

但我只得到:

{
"access_token":"xxx",
"expires_in":3599,
"scope":""https://www.googleapis.com/auth/userinfo.email openid https://www.googleapis.com/auth/calendar",
"token_type":"Bearer",
"id_token":"xxx",
}

第一次点击提示窗口时,有一个参数

access_type: offline
这是身份验证同意屏幕的示例:

https://accounts.google.com/o/oauth2/v2/auth?client_id={clientId}&response_type=code&scope=https://www.googleapis.com/auth/calendar%20https://www.googleapis.com/auth/userinfo.email&redirect_uri={redirecturi}&access_type=offline&prompt=consent

有什么办法让它只在“循环”场景中工作: 一旦我的刷新令牌距离到期日期还有 5 天(刷新令牌的有效期为 90 天),那么为我获取一个新的刷新令牌?

oauth-2.0 google-api google-oauth access-token
1个回答
0
投票

不。对于过期的刷新令牌,需要用户同意才能为您提供新的刷新令牌。

但是,您可以订阅跨帐户保护事件 [1],让您知道令牌已过期/已被撤销,以便您可以提示用户额外同意。

[1] https://developers.google.com/identity/protocols/oauth2/policies#refresh-token-replication

© www.soinside.com 2019 - 2024. All rights reserved.