如何在Google开发者控制台设置OAuth 2.0客户端ID的过期时间
Google OAuth 2.0桌面应用凭据过期问题解析
- 先澄清一个核心点:你在开发者控制台创建的桌面应用OAuth客户端ID/密钥本身是长期有效的,控制台里根本没有设置它过期时间的选项——这类凭据不会自动过期,除非你手动删除或撤销。
- 你遇到的2-3周过期的,绝对不是客户端凭据本身,而是访问令牌或刷新令牌:
- 访问令牌默认只有1小时有效期,过期后得用刷新令牌去换全新的访问令牌。
- 刷新令牌一般是长期有效的,但碰到以下情况会提前失效:
- 用户主动取消了对你应用的授权
- 你的应用频繁调用刷新令牌触发了Google的限制
- 用户修改了自己的Google账户密码
- 同一用户在多台设备上授权你的应用,旧设备的刷新令牌可能被挤掉(Google对单用户单应用的刷新令牌数量有上限)
- 如果你想控制令牌有效期,控制台没法直接设置,但可以这么处理:
- 请求授权时一定要加
access_type=offline参数,确保能拿到刷新令牌,方便后续自动续期 - 在代码里定期检查访问令牌的有效期,快过期时用刷新令牌提前换新的
- 要是刷新令牌频繁失效,检查下是不是触发了Google的令牌限制策略,调整下应用里的令牌使用逻辑
- 请求授权时一定要加
内容的提问来源于stack exchange,提问作者mudit devda
相关产品推荐
相关产品推荐

