NavigatorLogin: setStatus() 方法

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

setStatus()NavigatorLogin 介面的一個方法,當從聯合身份提供者 (IdP) 的源(origin)呼叫時,它用於設定聯合身份提供者 (IdP) 的登入狀態。這裡的“登入狀態”指的是“當前瀏覽器中是否有使用者登入到 IdP”。當用戶登入或登出 IdP 後,IdP 網站應該呼叫此方法。

瀏覽器會為每個 IdP 儲存此狀態;然後 FedCM API 利用此狀態來減少對 IdP 的請求次數(因為它不需要在沒有使用者登入 IdP 的情況下浪費時間請求賬戶資訊)。此方法還可以緩解 潛在的時序攻擊

有關 FedCM 登入狀態的更多資訊,請參閱 使用登入狀態 API 更新登入狀態

語法

js
setStatus(status)

引數

status

一個字串,表示要為 IdP 設定的登入狀態。可能的值為:

  • "logged-in":該 IdP 至少有一個使用者賬戶已登入。
  • "logged-out":所有 IdP 使用者賬戶當前都已登出。

返回值

一個 Promise,它將以 undefined 解析。

異常

SecurityError DOMException

如果呼叫域不在一個所有巢狀層級都同源(same-origin)的框架中,則會丟擲此錯誤。無論是在主框架、巢狀在主框架中的 <iframe> 中,還是巢狀在第一個 <iframe> 中多層深度的其他 <iframe> 中呼叫,所有巢狀層級都必須是同源的,呼叫才能成功。

示例

js
/* Set logged-in status */
navigator.login.setStatus("logged-in");

/* Set logged-out status */
navigator.login.setStatus("logged-out");

規範

規範
登入狀態 API
# dom-navigatorlogin-setstatus

瀏覽器相容性

另見