NavigatorLogin: setStatus() 方法
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 解析。
异常
SecurityErrorDOMException-
如果调用域不在一个所有嵌套层级都同源(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 |
浏览器兼容性
加载中…