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

FedCM测试报错:IdentityCredentialError无法获取令牌及403问题求助

解决FedCM + Google OneTap 403错误及令牌无效问题

问题背景

  • 网站原Google OneTap登录在https://kontext.tech/正常运行多年,现因第三方Cookie逐步淘汰测试FedCM。
  • 浏览器已开启「允许网站显示身份服务的登录提示」,并设置「阻止第三方Cookie」。
  • 已添加FedCM配置代码:
<div id="g_id_onload" data-client_id="***.apps.googleusercontent.com" 
data-login_uri="https://localhost:50001/account/external-login-google-one-tap?rurl=~%2F" 
data-use_fedcm_for_prompt="true">
</div>
  • 点击登录按钮后触发以下错误:

    When fetching the id assertion endpoint, a 403 HTTP response code was received.
    localhost/:1 Provider's token is invalid.
    client:48 [GSI_LOGGER]: FedCM get() rejects with IdentityCredentialError: Error retrieving a token.

解决方案

  • 校验OAuth客户端ID的授权配置
    登录Google Cloud控制台,找到对应OAuth 2.0客户端ID:

    • 确认「已授权的JavaScript来源」包含https://localhost:50001(本地测试地址),FedCM对来源校验比传统OneTap更严格,即使之前OneTap可用,也要重新确认该配置。
    • 确认「已授权的重定向URI」包含你的后端登录回调地址(即data-login_uri指向的地址)。
    • 检查客户端ID本身是否正确,确保星号替代的部分没有拼写错误。
  • 检查后端登录端点的FedCM兼容性
    你的data-login_uri对应的后端接口需要满足:

    • 正确返回CORS响应头,允许https://accounts.google.com作为请求来源,否则Google的FedCM服务无法访问该端点。
    • 接口处理逻辑不能依赖第三方Cookie(已设置阻止),要完全基于FedCM传递的请求参数处理身份校验。
  • 确认浏览器FedCM设置
    除了开启登录提示权限,还要检查浏览器的FedCM实验性功能:

    • Chrome浏览器可访问chrome://flags/#fedcm,确保设置为「Enabled」;其他支持FedCM的浏览器也要确认对应功能未被禁用。
  • 验证OAuth consent screen状态
    在Google Cloud控制台的OAuth consent screen页面:

    • 如果是测试项目,确认「测试用户」列表包含你用于测试的邮箱;如果是生产项目,确保已发布该consent screen,未发布的项目会限制FedCM的正常访问。

内容的提问来源于stack exchange,提问作者Raymond Tang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 03:18:19