Google认证API无法获取Refresh Token问题求助
解决Google认证API获取Refresh Token时的invalid_grant错误
检查授权Code的有效性
- 授权Code仅能使用一次,重复兑换会直接返回
invalid_grant。确认当前使用的Code是刚从授权流程获取的全新码,而非之前用过的旧Code。 - 授权Code有效期为10分钟,确保Code生成后及时发起兑换请求,且用户完成了完整的授权流程(未中途取消)。
- 授权Code仅能使用一次,重复兑换会直接返回
确认测试应用的用户权限配置
- 测试状态的Google Cloud应用,测试用户需手动添加至列表。检查控制台的测试用户列表,确认当前用户仍在列表内,若被移除则无法获取有效凭证。
- 授权请求需包含
access_type=offline参数,且用户在授权页面需勾选允许离线访问,否则即使重新授权也不会返回Refresh Token。
核对Token兑换请求的参数
- 确保以下参数完全正确:
client_id与client_secret和控制台应用凭据完全一致,无拼写、大小写错误;grant_type必须设为authorization_code;redirect_uri需与授权请求时的地址完全匹配(包括协议、域名、路径,不能有任何差异)。
- 确认请求的
Content-Type为application/x-www-form-urlencoded,Google Token接口不接受JSON格式请求体。
- 确保以下参数完全正确:
排查账号与应用的异常状态
- 检查用户Google账号是否开启两步验证,若开启需确保授权流程中完成了全部验证步骤,未出现中断。
- 查看Google Cloud控制台的API用量配额,确认是否因超出配额导致请求被拒绝。
- 检查OAuth同意屏幕页面是否有应用异常警告,若应用被标记为异常(如大量异常授权请求),需及时处理。
强制清除用户授权缓存
- 让用户进入自己Google账号的「第三方应用访问权限」页面,找到你的应用并移除授权,之后重新走完整授权流程,可清除用户端旧授权缓存,解决潜在的缓存冲突问题。
内容的提问来源于stack exchange,提问作者shakatechi
相关产品推荐
相关产品推荐

