You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Refresh Token是否会过期?如何使其永不过期及报错排查

Google Refresh Token 相关问题与错误排查

1. Google Refresh Token 是否会过期?

默认情况下,Google Refresh Token 不会过期,但存在多种场景会导致其失效:

  • 用户主动撤销了对应用的授权
  • 用户修改了Google账户密码
  • 应用的OAuth客户端配置发生变更(如重定向URI修改)
  • 账户触发Google安全机制(如异常登录活动)
  • Google Workspace账户的管理员设置了令牌过期策略

2. 如何让Google Refresh Token 永不过期?

  • 确保应用完成OAuth验证(未验证的测试应用,其Refresh Token仅7天有效期)
  • 避免触发上述令牌失效的操作(如用户不撤销授权、不修改密码)
  • 对于Google Workspace账户,联系管理员配置允许永久有效的Refresh Token
  • 定期使用Refresh Token获取Access Token(长期闲置的令牌可能被标记无效)

遇到的错误:invalid_grant(invalid_rapt)

运行Python代码通过Refresh Token获取Access Token时,初期正常,一段时间后抛出以下错误:

{
'error': 'invalid_grant',
'error_description': 'reauth related error (invalid_rapt)',
'error_subtype': 'invalid_rapt'
}

该错误表示需要用户重新授权,常见原因:

  • Refresh Token因安全原因被Google失效
  • 应用处于未验证测试状态,令牌已过期
  • 用户账户权限变更,需重新确认授权

相关代码

import requests
from datetime import datetime

refresh_token = "1//0gGNYTet38TyKCgYIARAAGBASNwF-L9Ir8JMGjR82iiCdPY0bTfdu2gutU50qPGFcASU4EmDWSouvnhvbuGtrEAiijoElpRoUKqg"
client_id = (
    "760863696391-ub3lqtqj4ou3qf4l35vjd3sa5bft14u1.apps.googleusercontent.com"
)
client_secret = "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"

token_endpoint = "https://oauth2.googleapis.com/token"

payload = {
    "refresh_token": refresh_token,
    "client_id": client_id,
    "client_secret": client_secret,
    "grant_type": "refresh_token",
}
# 获取新的访问令牌
response = requests.post(token_endpoint, data=payload)
token_data = response.json()
print(response.json())

access_token = token_data.get("access_token")
print(access_token)
refresh_token = token_data.get("refresh_token")
expires_in = token_data.get("expires_in")

print(access_token, "|", refresh_token, "||", expires_in)

内容的提问来源于stack exchange,提问作者Deependra Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 18:01:23