Credential Management API 是一种基于标准的浏览器 API,可在网站和浏览器之间提供程序化接口,以实现跨设备无缝登录。
Credential Management API:
- 消除登录流程中的摩擦 - 即使用户的会话已过期或他们在其他设备上保存了凭据,也可以自动重新登录网站。
- 允许使用账号选择器一键登录 - 用户可以在原生账号选择器中选择账号。
- 存储凭据 - 您的应用可以存储用户名和密码组合,甚至可以存储联合账号详细信息。这些凭据可以由浏览器在设备之间同步。
想了解其实际运作方式?试用 Credential Management API 演示并查看代码。
检查 Credential Management API 浏览器支持情况
在使用 Credential Management API 之前,请先检查是否支持 PasswordCredential
或 FederatedCredential
。
if (window.PasswordCredential || window.FederatedCredential) {
// Call navigator.credentials.get() to retrieve stored
// PasswordCredentials or FederatedCredentials.
}
登录用户
如需登录用户,请从浏览器的密码管理工具中检索凭据,然后使用这些凭据登录用户。
例如:
- 当用户到达您的网站且未登录时,请调用
navigator.credentials.get()
。 - 使用检索到的凭据让用户登录。
- 更新界面以指示用户已登录。
如需了解详情,请参阅登录用户。
保存或更新用户凭据
如果用户使用联合身份提供方(例如 Google 登录、Facebook、GitHub)登录:
- 用户成功登录或创建账号后,使用用户的电子邮件地址作为 ID 创建
FederatedCredential
,并使用FederatedCredentials.provider
指定身份提供程序。 - 使用
navigator.credentials.store()
保存凭据对象。
如需了解详情,请参阅登录用户。
如果用户使用用户名和密码登录:
- 用户成功登录或创建账号后,使用用户 ID 和密码创建
PasswordCredential
。 - 使用
navigator.credentials.store()
保存凭据对象。
如需了解详情,请参阅从表单保存凭据。
退出账号
当用户退出登录时,调用 navigator.credentials.preventSilentAccess()
可防止用户自动重新登录。
停用自动登录后,用户还可以轻松切换账号,例如在工作账号和个人账号之间切换,或在共用设备上的账号之间切换,而无需重新输入登录信息。
如需了解详情,请参阅退出。