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

本地开发Google Sign In报错:login_uri不被客户端ID允许

解决Google Sign In(GSI)Redirect模式本地localhost报错问题

核心错误分析

报错GSI_LOGGER]: The given login_uri is not allowed for the given client ID.本质是Google OAuth服务验证login_uri未在客户端ID的授权列表中,或请求来源验证失败,结合popup模式正常、仅localhost失效的情况,按以下步骤排查:


1. 精确匹配OAuth授权重定向URI

  • 登录Google Cloud Console,找到对应项目的OAuth 2.0客户端ID(类型必须为「Web应用」,不能是桌面/移动端类型)。
  • 在「已获授权的重定向URI」列表中,确保存在与代码中完全一致的地址:http://localhost:3000/api/signin/google,注意:
    • 端口必须与本地服务实际运行端口一致(确认Cloudflare Wrangler启动的服务端口确实是3000);
    • 协议必须匹配(代码用http则不能填https);
    • 路径不能有任何拼写错误,包括大小写。
  • 若修改了重定向URI,需等待5-10分钟让配置生效后再测试。

2. 调整Referrer策略

当前no referrer when downgrade策略可能导致Google OAuth服务无法获取合法的来源Referrer,进而拒绝请求:

  • 临时在页面头部添加meta标签测试:
    <meta name="referrer" content="strict-origin-when-cross-origin">
    
  • 或在服务器响应头中修改Referrer-Policy为strict-origin-when-cross-origin或origin,避免Referrer被完全隐藏。

3. 临时放宽第三方Cookie限制

Chrome/Edge默认的第三方Cookie限制(SameSite=Lax)可能影响redirect模式下的Cookie读取:

  • 浏览器设置路径:隐私和安全 → 第三方Cookie → 选择「允许所有第三方Cookie」,测试是否解决问题。
  • 本地开发完成后可恢复默认设置,生产环境建议使用HTTPS并配置Cookie的SameSite属性。

4. 检查GSI初始化参数细节

  • 确认ux_mode: "redirect"无拼写错误,不要混淆为其他参数名;
  • 临时移除state: window.location.pathname参数测试,避免路径中的特殊字符导致URI解析异常;
  • 确保页面仅调用一次google.accounts.id.initialize,避免重复初始化导致配置冲突。

5. 验证Cloudflare Wrangler代理配置

  • 检查wrangler.toml中是否有修改请求头的配置,确保未删除或篡改Host、Referer头部信息;
  • 若Wrangler做了反向代理,确认代理后的请求仍保留localhost:3000的Host信息,避免Google OAuth识别到异常来源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 13:28:15