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

未登录状态下Google一键登录按钮新增属性引发FedCM问题

问题排查与解决方案

报错汇总

你遇到的报错包括:

  • button:1 getUserInfo() is disabled because the IDP Sign-In Status is signed-out.
  • /TGNewUI/Search/Home/home?partnerid=13617&siteid=6812#home:1 Not signed in with the identity provider.
  • client:50 [GSI_LOGGER]: get() rejects with NetworkError: Error retrieving a token.(伴随FedCM相关日志)

可能的解决方向

  1. 添加登录状态前置判断
    你的代码可能在页面加载时就自动调用了getUserInfo()或令牌获取请求,忽略了用户未登录IDP的状态。建议先通过身份提供商的状态检测接口验证登录状态,再执行后续逻辑:

    // 以Google GSI为例
    google.accounts.id.isSignedIn.get().then(isSignedIn => {
      if (isSignedIn) {
        // 执行getUserInfo()或令牌获取操作
      } else {
        // 处理未登录场景:隐藏需要权限的功能、提示用户登录等
      }
    });
    
  2. 调整FedCM配置逻辑
    报错关联的FedCM(联合凭证管理API)可能存在配置或触发时机问题:

    • 确保client_id与IDP后台配置完全匹配
    • 避免在用户未触发登录操作时自动发起FedCM令牌请求,将请求逻辑绑定到用户主动点击的登录按钮上
    • 检查服务器端是否能正常处理FedCM的令牌验证请求,排查跨域、权限配置等问题
  3. 修正第三方登录初始化时机
    不要在页面加载完成前就初始化第三方登录组件,也不要自动触发认证流程。将登录初始化逻辑延迟到页面就绪后,且仅在用户主动触发登录操作时执行相关请求。

  4. 同步IDP会话与本地状态
    可能存在IDP会话与网站本地状态不同步的情况:

    • 可以在页面初始化时调用IDP的会话检查接口,同步本地状态
    • 若存在无效会话,可调用IDP的会话清除方法(如google.accounts.id.revoke())重置状态
  5. 核对IDP后台配置
    确认在身份提供商后台(如Google Cloud Console):

    • 你的网站域名已添加到授权域名列表
    • OAuth 2.0客户端ID的重定向URI、权限范围等配置正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 13:52:37