在成功完成源试用后,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
}
源试用参与者提供了积极反馈,强调了与通用的 Storage Access API 提示相比,特定于上下文的 FedCM 提示可带来更出色的用户体验。
如需详细了解如何使用 FedCM 自动授予存储空间访问权限,请参阅 Storage Access API 文档。
参与并提供反馈
提交问题以分享反馈或报告问题。我们会及时更新 FedCM 开发者指南以及累积更新日志页面。