NavigatorLogin:setStatus() 方法
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 的浏览器中加载。