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

从Google Signin迁移至FedCM遇Windows报错,求解决方案

解决FedCM迁移后Windows端报错的方案

1. 检查浏览器版本兼容性

FedCM稳定支持从Chrome/Edge 116版本开始,Windows端浏览器版本过低会直接导致报错:

  • 打开浏览器输入chrome://version/(Edge为edge://version/),确认版本≥116,若版本不足直接升级浏览器

2. 修复重复配置与属性错误

你同时在HTML的g_id_onload标签和JS初始化代码中设置了use_fedcm_for_prompt,且HTML中data-ux_mode存在多余引号,这会导致部分环境解析异常:

  • 移除重复配置:删除HTML中的:data-use_fedcm_for_prompt="true"属性,仅保留JS初始化代码中的use_fedcm_for_prompt: true
  • 修正UX模式属性:将HTML中的:data-ux_mode="'popup'"改为:data-ux_mode="popup",避免多余引号导致属性值解析错误

修正后的HTML代码示例:

<div id="g_id_onload"
     class="google-login"
     :data-client_id="constants.GOOGLE_CLIENT_ID"
     :data-auto_select="true"
     :data-itp_support="true"
     :data-skip_prompt_cookie="localToken"
     :data-callback="handleGoogleOneTapResponse"
     :data-prompt_parent_id="g_id_onload"
     :data-ux_mode="popup">
</div>

3. 排查浏览器隐私设置

Windows端浏览器的隐私规则可能更严格,导致FedCM无法正常运行:

  • 打开浏览器设置→隐私和安全→Cookie及其他网站数据,确认未完全阻止第三方Cookie
  • 进入「网站设置→权限→身份验证请求」,确认允许网站发起身份验证请求

4. 清除浏览器缓存

旧的Google登录脚本缓存可能导致FedCM配置不生效:

  • 清除Windows端浏览器的缓存、Cookie和站点数据,重点清理与Google相关的缓存内容

5. 简化配置调试

如果以上步骤无效,先使用最小化配置测试,排除其他属性的干扰:

function renderGoogleSignInBtn() {
  const google = window.google;
  if (google) {
    google.accounts.id.initialize({
      client_id: constants.GOOGLE_CLIENT_ID,
      callback: handleGoogleOneTapResponse,
      use_fedcm_for_prompt: true,
    });
    google.accounts.id.prompt();
  }
}

HTML仅保留必要的client_id和callback属性,确认基础FedCM功能正常后,再逐步添加auto_select等其他属性,定位冲突点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 03:02:47