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属性指定。
返回值
异常
InvalidStateErrorDOMException-
在以下情况下抛出
- IdP 的
configURL无效或缺少disconnect_endpoint。 - 文档的源与
configURL不匹配。
- IdP 的
NetworkErrorDOMException-
在以下情况下抛出
- 浏览器无法连接到 IdP。
- 请求被
connect-srcContent-Security-Policy阻止。 - 之前已发出另一个
disconnect()调用,但尚未解析。 - FedCM API 已全局禁用。
- IdP 的
configURL既不安全也不 值得信赖。
NotAllowedErrorDOMException-
如果嵌入的
<iframe>没有设置identity-credentials-getPermissions-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)