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

瀏覽器相容性

另見