IdentityCredential:disconnect() 静态方法

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

IdentityCredential 接口的 disconnect() 静态方法可断开已指定的联邦登录账号与用于获取凭证的 IdP 的连接。

此后,再使用该账号进行联邦登录将需要重新启动联邦登录流程。

语法

js
IdentityCredential.disconnect(options)

参数

options

一个选项对象,可以包含以下属性:

accountHint

一个字符串,用于指定 IdP 用来识别要断开连接的账号的提示。只要 disconnect endpoint 能够识别该账号,该提示可以是一个任意字符串,例如电子邮件地址或用户 ID。这不一定与 accounts list endpoint 提供的账号 ID 相匹配。

clientId

一个字符串,用于指定 RP 的客户端标识符,该标识符在登录期间通过 providersclientId 属性指定。

configURL

一个字符串,用于指定 IdP 的配置文件 URL,该 URL 在登录期间通过 providersconfigURL 属性指定。

返回值

一个 Promise,它 fulfilled 为 undefined

异常

InvalidStateError DOMException

在以下情况下抛出

  • IdP 的 configURL 无效或缺少 disconnect_endpoint
  • 文档的源与 configURL 不匹配。
NetworkError DOMException

在以下情况下抛出

  • 浏览器无法连接到 IdP。
  • 请求被 connect-src Content-Security-Policy 阻止。
  • 之前已发出另一个 disconnect() 调用,但尚未解析。
  • FedCM API 已全局禁用。
  • IdP 的 configURL 既不安全也不 值得信赖
NotAllowedError DOMException

如果嵌入的 <iframe> 没有设置 identity-credentials-get Permissions-Policy 来允许使用 disconnect(),或者如果 FedCM API 被顶级文档上的策略全局禁用,则会抛出此错误。

示例

基本的 disconnect() 用法

RP 可以通过调用 disconnect() 来断开已指定的联邦登录账号与关联 IdP 的连接。此函数可以从顶级 RP 框架调用。

js
IdentityCredential.disconnect({
  configURL: "https://idp.example.com/config.json",
  clientId: "rp123",
  accountHint: "account456",
});

要使 disconnect() 调用生效,IdP 必须在其配置文件中包含 disconnect_endpoint。有关底层 HTTP 通信的更多详细信息,请参阅 The disconnect endpoint

规范

规范
Federated Credential Management API
# dom-identitycredential-disconnect

浏览器兼容性

另见