FedCM:Chrome 131 中 Storage Access API 的信任信号

Natalia Markoborodova
Natalia Markoborodova

在成功完成源代码试用后,Chrome 131 现在使用 FedCM 作为 Storage Access API 的信任信号

Storage Access API (SAA) 可让跨源 iframe 在浏览器设置否认访问权限时请求存储空间访问权限。

某些网站可能会同时使用 FedCM 进行身份验证,并使用 SAA 允许跨源 iframe 访问所需的存储空间。例如,如果 idp.example 嵌入在 rp.example 中,并且 idp.example 需要对自己的顶级 Cookie 拥有存储访问权限才能显示个性化内容。

在这种情况下,用户需要批准两个不同的提示:一个用于身份验证,另一个用于授予 Cookie 访问权限,因为 SAA 会触发权限提示。FedCM 通过充当信任信号来简化 Storage Access API 流程。用户使用 FedCM 登录后,系统会自动授予 IdP 发起的存储空间访问权限请求,从而无需额外的 SAA 提示。

// In top-level rp.example:

// Ensure FedCM permission has been granted.
const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: 'https://idp.example/fedcm.json',
      clientId: '123',
    }],
  }
});

// In an embedded IdP iframe:

// Returns `true` if the user already has access to cookies, and `false` if
// the user doesn't have access yet and needs to request it.
const hasAccess = await document.hasStorageAccess()
if(!hasAccess){
    // No user gesture is needed to approve storage access, and the call will be auto-granted.
    document.requestStorageAccess().then(e=>{
        //access cookies
})
} else{
    //the iframe already has access to third-party cookies
}

Origin 试用参与者提供了积极的反馈,强调了与通用 Storage Access API 提示相比,特定于上下文的 FedCM 提示可提供更出色的用户体验。

如需详细了解如何使用 FedCM 自动授予存储空间访问权限,请参阅 Storage Access API 文档

互动并提供反馈

您可以提交问题来分享反馈或报告问题。我们会及时更新 FedCM 开发者指南以及累计更新日志页面