为什么我的Google OAuth2 refresh_token使用一周后过期?该如何解决?
问题根因
你遇到的refresh_token7天固定失效、抛出invalid_grant报错的问题,核心是你在Google Cloud Console创建的OAuth应用处于「测试模式」。Google对测试状态的OAuth应用默认设置了7天的refresh_token有效期,到期后会自动吊销所有测试用户的授权令牌。
修复步骤
- 进入Google Cloud Console对应项目的「API和服务」→「OAuth同意屏幕」配置页
- 找到页面中的「发布状态」板块,点击「发布应用」按钮将应用从测试模式切换为生产模式
- 重新走一次OAuth授权流程,获取新的
refresh_token替换代码中的旧令牌即可。如果应用仅你个人使用,不需要提交Google官方审核,切换生产模式后即可生效。
其他可能触发该问题的排查项
- 你的Google账号近期修改过密码,会自动吊销所有关联的旧OAuth授权令牌
- 你在短时间内高频重复请求刷新
access_token,触发了Google的接口限流和令牌吊销机制 - OAuth授权时未完整勾选所需的Gmail发送权限,会导致授权令牌提前失效
- 你的Google账号开启了高危操作保护,检测到异常授权调用时会自动吊销令牌
内容的提问来源于stack exchange,提问作者Eli Sailer-Haugland
相关产品推荐
相关产品推荐

