Google Sign In无法工作:因unknown_reason未返回认证响应
Google One Tap登录仅特定账号在Chrome中失败问题排查
问题描述
我们的React应用采用新版Google Sign In for Web做认证,近期我的账号在One Tap提示回调中出现登录失败问题:
- 仅在Google Chrome(版本112.0.5615.137、112.0.5615.59)中出现
- 仅针对我的Google账号,其他浏览器登录正常;不同Chrome实例(全新安装、旧版本)及环境(本地、QA、生产)均复现该问题
- 其他用户使用Chrome登录无异常,且应用代码数月未做修改
错误信息
控制台输出错误:
[GSI_LOGGER]: Check credential status returns invalid response. GET https://accounts.google.com/gsi/status?client_id=<googleappclientid>&as=<userid> net::ERR_BLOCKED_BY_CLIENT
错误触发时PromptMomentNotification的状态:
res.isNotDisplayed() // true res.getNotDisplayedReason() // "unknown_reason"
此时返回的凭证响应为空,无法在压缩脚本中深度调试。
集成代码示例
GSI初始化
window.google.accounts.id.initialize({ client_id: GOOGLE_CLIENT_ID, auto_select: true, callback: async ({ credential: jwtToken }: CredentialResponse) => { // 处理jwtToken逻辑 }), });
One Tap按钮渲染
window.google.accounts.id.renderButton( signInButtonParentRef.current, { type: "standard", theme: "filled_blue" }, () => { prompt(); } );
Prompt回调
const prompt = () => { window.google?.accounts.id.prompt((res: PromptMomentNotification) => { if (res.isNotDisplayed()) { // 处理响应,展示错误 } }); }
已执行的排查步骤
- 重启Chrome及电脑、清除Cookie、本地存储、浏览记录,卸载重装Chrome
- 在另一台电脑/旧版本Chrome测试,问题复现
- 检查Google账号是否存在异常
- 检查Google客户端的授权JavaScript源设置
- 移除应用在Google Sign In的访问权限(认证时会自动恢复)
- 在Safari、Firefox等其他浏览器测试正常,其他用户用Chrome登录无异常
建议排查方向
- Chrome隐私/扩展拦截:尝试用Chrome隐身模式测试,或关闭账号同步后重装Chrome(避免同步回拦截设置);检查是否有广告拦截、隐私类扩展自动拦截了Google账号相关请求。
- Google账号安全设置:检查账号安全中心的第三方应用权限,确认无异常限制;若开启了高级安全保护,可临时关闭后测试。
- Chrome网络设置:重置Chrome网络设置,检查是否有代理、VPN或hosts文件修改导致请求被拦截。
- 账号设备会话重置:在Google账号安全中心移除所有设备的登录会话,重新登录Chrome及Google账号后测试。
- Google服务状态验证:确认账号未被限制使用Google登录相关服务。
内容的提问来源于stack exchange,提问作者palandiriel
相关产品推荐
相关产品推荐

