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

Laravel使用nao-pon/flysystem-google-drive包Google Drive刷新令牌过期求助

解决Laravel集成nao-pon/flysystem-google-drive刷新令牌过期问题

问题根因

Google OAuth 2.0 规则限制:OAuth同意屏幕处于测试状态的项目,无论用户类型选内部还是外部,所有生成的刷新令牌默认有效期只有7天,到期自动失效。

解决方案

方案1:使用Google Workspace内部应用(推荐,配置最简单)

  • 进入Google Cloud对应项目的「API和服务」-「OAuth同意屏幕」页面,确认用户类型已选择内部(仅支持Google Workspace组织账号,个人Google账号无该选项)
  • 将应用状态从「测试」调整为「已发布」,内部应用发布无需Google官方审核,提交后立即生效
  • 删除旧的OAuth 2.0客户端凭据,重新创建新凭据,重新走nao-pon/flysystem-google-drive的授权流程获取新的刷新令牌,替换Laravel.env文件中的GOOGLE_DRIVE_REFRESH_TOKEN参数即可,新刷新令牌无7天过期限制。

方案2:使用服务账号授权(无过期问题,适配所有场景)

如果没有Google Workspace账号,可改用服务账号方案完全避免刷新令牌过期问题:

  • 在Google Cloud控制台「IAM与管理」-「服务账号」页面创建新服务账号,生成JSON格式的密钥文件,存入Laravel项目的storage/app目录下
  • 打开你要操作的Google Drive文件夹,共享给服务账号对应的邮箱地址,授予编辑权限
  • 修改config/filesystems.php中google drive的配置,移除原有的client_id、client_secret、refresh_token相关配置,新增服务账号配置:
'google' => [
    'driver' => 'google',
    'service_account' => storage_path('app/你的服务账号密钥文件名.json'),
    'root' => '你的Google Drive文件夹ID',
],

该方案无需定期更新授权信息,只要服务账号密钥和文件夹权限不变,即可长期正常使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:39:03