我开发了一个与 google api 集成的应用程序。 第一部分最初进展顺利:
问题是当我想根据刷新令牌获取下一个有效访问令牌序列和刷新令牌
我尝试过的端点:
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 天),那么为我获取一个新的刷新令牌?
不。对于过期的刷新令牌,需要用户同意才能为您提供新的刷新令牌。
但是,您可以订阅跨帐户保护事件 [1],让您知道令牌已过期/已被撤销,以便您可以提示用户额外同意。
[1] https://developers.google.com/identity/protocols/oauth2/policies#refresh-token-replication