有关完整的详细信息和更详细的描述,请参阅此W3C服务工作者问题.
这是我的HTML5 Web App场景: -
我的问题是这些: -
1)在ServiceWorkers触发的所有Message事件之前或之后,Focus事件是否会触发?
2)如果Focus是第一个,setTimer(0,backlogCleared)就足以作为一个启发机制来建立"处理所有背景的东西"吗?
3)是否有崩溃postMessage()消息(模式Firebase的推送通知),以便只收到最后/当前消息?
4)如果您对授权背景地理定位所需的权限有任何想法,请在W3C上添加它们.
欢呼和良好的骑马,跑步,帆船,驾驶!
javascript html5 web-applications geolocation service-worker
如果我用 then(gAuth) 结构替换下面的 asynch/await,我对 Google Auth Init 的调用就可以工作。目前,init() 调用永远不会返回,并且浏览器挂起。
我是否误解了“等待”的要求?
async function gInit() {
// Check if already logged in with Google
try {
gAuth = await gapi.auth2.init({
client_id: providers.google.clientId
})
alert("sign in: " + gAuth.isSignedIn.get());
} catch (err) {
alert(err.message || err.text)
delete providers.google;
}
}
Run Code Online (Sandbox Code Playgroud) 编辑1
在我的用例中我没有说清楚的一件事是浏览器不需要显示UX进行身份验证,或者至少它是可选的.
var credential = await navigator.credentials.get({
password: true,
mediation: "silent",
federated: {providers: federatedProviderURL}}
);
Run Code Online (Sandbox Code Playgroud)
如果用户已从UA注销或删除了密码,则它将失败(凭证== null).
凭证规范编写者可以规定,如果从ServiceWorker调用,调解必须是"无声",或者,如果没有,并且没有可用的UI,则:
错误 - NOUI操作需要UI才能完成
但重要的是,在绝大多数情况下,可以进行无密钥重新认证.
这会改变一切吗?
干杯理查德
原帖子: -
如果我的ServiceWorker中的Fetch从服务器收到401,如果我没有专注或前置的客户端,如何重新验证服务器?
注意:我说的是更新服务器的POST请求,而不只是从缓存中读取,直到网络恢复.
让客户重新关注?对于没有采取行动导致反应的用户而言可怕,他们可能无论如何也无法再次登录.
如果获得401,Background-Synch会做什么?
如果navigator.credentials在ServiceWorker中出现就足够了!
永不过期的会话?
其他人在做什么?
然而我又被禁止参加W3C/IETF Github :-(
如果有人可以将以下内容添加到有助于ServiceWorker的问题: - 请参阅用例
如果用户会话已过期,则ServiceWorker当前没有可用于重新向服务器进行身份验证的机制,因为没有可用于确定凭据的启发式机制.
如果credentials.get()可用,则可以透明地进行重新身份验证.如果联合(比如谷歌)那么如果用户已经注销,那么该状态将被尊重.
javascript authentication web-applications service-worker fetch-api
看看是不是只有我,或者W3C 规范没有说这应该已经发生了:-
1.2.2. 验证
在笔记本电脑或台式机上:
用户通过蓝牙将手机与笔记本电脑或台式机配对。
用户在浏览器中导航到 example.com 并开始登录。
用户从浏览器收到一条消息,“请在您的手机上完成此操作。”
接下来,在他们的手机上:
用户会看到一个离散的提示或通知,“登录 example.com”。
用户选择此提示/通知。
向用户显示他们的 example.com 身份列表,例如,“以 Mohamed 身份登录/以 ?? 身份登录”。
用户选择一个身份,提示输入授权手势(PIN、生物识别等)并提供此信息。
现在,回到笔记本电脑上:
网页显示所选用户已登录,并导航到登录页面。
================
我的 WebAuthn 代码愉快地与 Windows Hello 交互以通过 PIN 进行用户验证。我的三星 Android 手机愉快地与https://webauthn.appspot.com演示交互并接受指纹验证。
但是我似乎无法将手机用作安全密钥,就像连接到计算机上的 YubiKey 一样?
我可以通过蓝牙将其与 PC 配对或使用 USB 电缆将其连接起来,但 Windows 不会将其识别为安全密钥。
这是可能的,还是功能受到限制?如果我们可以使用我们的手机作为安全密钥,我们就不需要特殊的加密狗来进行平台不可知的身份验证。
javascript ×3
android ×1
async-await ×1
fetch-api ×1
fido ×1
geolocation ×1
html5 ×1
webauthn ×1
yubico ×1