Chrome 143 更改 FedCM:结构化 ID 声明、更严格的客户端元数据和破坏性 API 更新
Chrome 143(发布于 2026 年 1 月 12 日)引入了几个与 FedCM(联合凭证管理)相关的更改,这些更改对构建网页登录流程的全栈团队立即相关。此更新允许身份提供者(IdP)在 ID 声明中返回结构化 JSON,收紧 client_metadata 验证(浏览器将开始强制执行必填字段),并进行一些破坏性 API/形状更改,这些更改将在 Chrome 145 中强制执行。(developer.chrome.com)
为什么这很重要
- 这些不是可选的用户体验调整:它们改变了 IdP 端点返回的数据形状以及 Chrome 在将 RP 匹配到 IdP 时所接受的内容。如果您托管 IdP 或依赖于集成 FedCM 的登录,变更可能会在 Chrome 145 发布后悄然破坏登录。
- 这些更改影响客户端代码(navigator.credentials.get() 调用、错误处理以及您包含 nonce 的位置)和服务器端端点(.well-known/web-identity 和 ID 声明响应)。
- Chrome 提供了一个过渡窗口(Chrome 143–144),在此期间旧行为和新行为共存,但团队必须在 Chrome 145 强制执行之前进行更新。
关键技术更改(简短)
- ID 声明令牌可以是结构化 JSON 对象,而不是序列化字符串(例如,{ token: { access_token: "...", user_info: { email: "..." } } })。这消除了手动服务器端 JSON 字符串化和客户端解析的需求。(developer.chrome.com)
- client_metadata 验证更严格:如果您使用 client_metadata 端点,您的 .well-known/web-identity 必须包含 accounts_endpoint 和 login_url;Chrome 145 将强制执行 accounts_endpoint。(developer.chrome.com)
- API 形状/错误更改:顶级 nonce 被移动到与 navigator.credentials.get(...) 一起使用的 params 对象中,IdentityCredentialError.code 被重命名为 IdentityCredentialError.error——在过渡期间处理这两者。(developer.chrome.com)
全栈团队的实用检查清单(高影响,低摩擦)
- 更新 IdP ID 声明响应
- 返回一个真实的 JSON 对象作为
token(而不是 JSON 字符串)。在稳定结构下添加任何额外的声明(access_token、user_info 等)。 - 验证服务器端签名/验证逻辑接受 RP 期望的结构化令牌格式。
- 返回一个真实的 JSON 对象作为
- 验证并发布公认元数据
- 确保您的 .well-known/web-identity 包含必填字段:至少包括
accounts_endpoint和login_url。 - 在使用 Chrome 143 的暂存环境中测试端点发现和响应形状。
- 确保您的 .well-known/web-identity 包含必填字段:至少包括
- 更新客户端集成
- 将
nonce移入传递给 navigator.credentials.get({...}) 的params对象中。避免顶级nonce。 - 在 143–144 过渡窗口期间更新错误处理,以检查
e.error和e.code。 - 为不支持新形状的浏览器添加特性检测和优雅回退。
- 将
- 测试跨浏览器行为和回归
- 使用 Chrome 143+ 和旧版浏览器运行端到端测试。使用 FedCM 演示和 Chrome 文档中的实施指南来验证流程。(developer.chrome.com)
- 通过遥测和分阶段功能标志进行推出
- 在切换后部署服务器更改,为小比例流量启用,并在全面推出之前监控身份验证失败率和用户流失情况。
- 添加发现、.well-known 获取和身份声明解析错误的日志记录。
- CI / 安全管道
- 添加一个测试,获取 .well-known 并验证所需 client_metadata 键的存在。
- 如果您是 IdP,请将此更改视为兼容性破坏更改,并通知 RP 或客户提供集成指南。
时间表和风险
- 过渡窗口:Chrome 143–144 支持旧形状和新形状。强制执行将在 Chrome 145 中开始——在该版本发布之前进行更新,以避免生产中断。(developer.chrome.com)
- 风险级别:对于尚未验证其 .well-known 和声明解析的 IdP 和 RP 风险较高;对于使用第三方 IdP 的消费者网站风险中等(与提供商确认)。
底线 如果您的技术栈使用 FedCM 处理登录(无论是作为 IdP 还是 RP),请将此视为平台级 API 更改:更新 ID 声明输出,发布所需元数据,修改客户端 nonce/错误处理,并立即在 Chrome 143 中进行测试。利用 143–144 过渡期安全地推出更改,然后在 Chrome 145 中强制执行。(developer.chrome.com)
来源:(Chrome for Developers) (developer.chrome.com)
来源
继续阅读
Undici CVE-2026-22036: 无界解压链导致资源耗尽 — 补丁已发布
2026年1月30日2026年1月14日,undici(Node.js HTTP客户端)发布了一份安全通告,描述了一种无界解压链漏洞,可能导致高CPU和内存使用。全栈团队必须找到并升级受影响的undici版本,并添加轻量级运行时保护。
React Router / Remix 修复服务器操作中的 CSRF 漏洞 (CVE-2026-22030)
2026年1月29日React Router 和 @remix-run/server-runtime 修复了影响服务器端操作处理程序和不稳定的 React 服务器操作的中等严重性 CSRF 问题——全栈团队现在必须检查和修补的内容。
GitHub Actions 1‑vCPU Linux Runner 现已普遍可用
2026年1月28日GitHub 在 GitHub Actions 中推出了一种新的低成本、容器化的 1‑vCPU Linux runner(ubuntu-slim)——全栈团队应该知道的内容和首要任务。