编辑1
我在用例中没有说清楚的一件事是,浏览器不需要显示UX进行身份验证,或者至少它是可选的。
var credential = await navigator.credentials.get({
password: true,
mediation: "silent",
federated: {providers: federatedProviderURL}}
);
如果用户已从UA注销或删除密码,则会失败(凭证== null)。
凭证规范编写者可以规定,如果从ServiceWorker调用,调解必须是“无声”"或者,如果没有,并且没有可用的UI: -
错误 - NOUI操作需要UI才能完成
但重要的是,在绝大多数情况下都可以进行无密钥重新认证。
这会改变一切吗?
干杯理查德
原始帖子: -
如果我的ServiceWorker中的Fetch从服务器收到401,如果我没有专注或前瞻性的客户端,如何重新验证服务器?
注意:我正在谈论更新服务器的POST请求,而不只是在网络恢复之前从缓存中读取。
让客户重新关注?对于没有动作导致反应的用户来说可怕,他们可能无论如何也无法再次登录。
如果获得401,后台同步会做什么?
如果在ServiceWorker中出现了navigator.credentials就够了!
永不过期的会话?
其他人在做什么?
我再次被禁止参加W3C / IETF Github: - (
如果有人可以将以下内容添加到ServiceWorker issues,那会有所帮助: - 请参阅Use-Case
如果用户会话已过期,则ServiceWorker当前没有可用于重新验证服务器的机制,因为没有可用于确定凭据的启发式机制。
如果credentials.get()可用,则可以透明地进行重新身份验证。如果联合(比如谷歌),那么如果用户已经注销,那么该状态将被尊重。