IdentityCredential:disconnect() 静态方法
IdentityCredential
接口的 disconnect()
静态方法可断开已指定的联邦登录账号与用于获取凭证的 IdP 的连接。
此后,再使用该账号进行联邦登录将需要重新启动联邦登录流程。
语法
js
IdentityCredential.disconnect(options)
参数
options
-
一个选项对象,可以包含以下属性:
accountHint
-
一个字符串,用于指定 IdP 用来识别要断开连接的账号的提示。只要 disconnect endpoint 能够识别该账号,该提示可以是一个任意字符串,例如电子邮件地址或用户 ID。这不一定与 accounts list endpoint 提供的账号 ID 相匹配。
clientId
-
一个字符串,用于指定 RP 的客户端标识符,该标识符在登录期间通过
providers
的clientId
属性指定。 configURL
-
一个字符串,用于指定 IdP 的配置文件 URL,该 URL 在登录期间通过
providers
的configURL
属性指定。
返回值
异常
InvalidStateError
DOMException
-
在以下情况下抛出
- IdP 的
configURL
无效或缺少disconnect_endpoint
。 - 文档的源与
configURL
不匹配。
- IdP 的
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 |
浏览器兼容性
加载中…
另见
- Federated Credential Management API on privacysandbox.google.com (2023)