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

Flutter Google Photo API随机调用失败:登录正常但报invalid_token错误

解决Flutter调用Google Photo API随机返回invalid_token的问题

可能的原因及修复方案

1. 完善Token自动刷新机制

Google OAuth2的Access Token有效期仅1小时,若代码未正确实现自动刷新,就会出现随机失效(比如登录后1小时内正常,之后报错)。

  • 确认使用的Google Auth库(如google_sign_in、googleapis)已配置Refresh Token的获取逻辑
  • 调用API前先校验Token过期时间,过期或即将过期时先触发刷新

2. 确认权限范围(Scopes)是否正确

  • 检查登录时请求的Scopes是否包含Google Photo API所需权限,比如photoslibrary.readonly、photoslibrary.appendonly等
  • 若之前Scopes不全,重新登录时需明确指定完整权限列表,否则仍会因权限不足触发无效Token报错

3. 排查Token存储与读取逻辑

随机失效常和本地存储问题有关:

  • 用SharedPreferences存储Token时,确保序列化/反序列化过程无数据损坏
  • 检查是否存在旧Token未被覆盖的情况,导致后续请求误用过期Token

4. 校验API请求的Token携带方式

  • 确保每次调用API时,请求头正确携带Authorization: Bearer {access_token}
  • 排查是否有请求拦截器错误修改了Authorization字段

调试技巧

  • 打印每次请求的Access Token,通过Google Token Info接口(代码内直接调用)校验Token的有效性、过期时间和权限
  • 捕获Token刷新过程的异常,确认是否因刷新失败导致使用无效Token

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:29:58