NavigatorLogin:setStatus() 方法

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中。

实验性:这是一个实验性技术
在生产环境中使用之前,请仔细查看浏览器兼容性表

setStatus() 方法是 NavigatorLogin 接口的方法,用于在从 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

如果调用域不在所有嵌套层次结构都同源的框架中,则抛出此异常。无论从主框架、嵌套在主框架内的<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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅