Google Calendar刷新令牌过期撤销报错及有效期相关问题咨询
Google OAuth Refresh Token 相关问题解答
1. 正确撤销refresh token的方法
仅可对仍处于生效状态的refresh token执行撤销操作,已经过期、被作废的token无法也无需进行撤销。你之前调用接口返回的invalid_token报错属于正常现象,说明你要操作的token本身已经处于失效状态。
正确的撤销请求规则如下:
- 目标接口地址为
https://oauth2.googleapis.com/revoke,请求方法为POST - 需要撤销的refresh token可以放在URL的query参数中,也可以放在
application/x-www-form-urlencoded格式的请求体中,参数名为token - 撤销成功时返回200状态码,无错误字段返回
2. refresh token的有效期规则
Google发布的refresh token没有固定的有效天数,符合有效条件时可长期使用,触发自动失效的场景包括:
- 超过6个月未被使用,会被系统自动回收
- 用户在Google账号的「第三方应用访问权限」设置中手动解除了对你的应用的授权
- 同一个Google账号为同一个应用生成的refresh token超过50个上限,最早生成的refresh token会自动失效
- 应用的OAuth授权范围被调整,或权限被官方收回
- 用户修改Google账号密码,且你的应用授权涉及敏感权限时,refresh token会被自动作废
3. 完整的refresh token撤销操作步骤
- 步骤1:确认待撤销的refresh token为有效状态:如果调用刷新令牌接口时已经返回「Token has been expired or revoked」,说明该token已经作废,无需执行后续撤销操作
- 步骤2:构造POST请求,两种方式二选一即可:
- 方式1:将token放在URL参数中,直接向
https://oauth2.googleapis.com/revoke?token=替换为你的有效refresh token值发送POST请求,无需额外填写请求体 - 方式2:将token放在请求体中,向
https://oauth2.googleapis.com/revoke发送POST请求,请求头添加Content-Type: application/x-www-form-urlencoded,请求体内容为token=替换为你的有效refresh token值
- 方式1:将token放在URL参数中,直接向
- 步骤3:校验结果:返回200状态码且无error字段即撤销成功;如果返回
invalid_token错误,说明待撤销的token已经失效,无需额外处理
内容的提问来源于stack exchange,提问作者SHRADDHA PRAJAPATI
相关产品推荐
相关产品推荐

