小编McM*_*phy的帖子

背景地理位置ServiceWorker - on Webessing Web App重新获得焦点时的事件顺序

有关完整的详细信息和更详细的描述,请参阅此W3C服务工作者问题.

这是我的HTML5 Web App场景: -

  • 当我去搭车时,我的网络应用程序已经背景并卡在我的口袋里
  • 随着时间的推移,我的服务工作者定期接收GPS更新并调用postMessage()将它们排队等待我的应用程序最终在Google地图上绘图
  • 在骑行结束时,我订购啤酒并前往Web App,这样我就可以看到我去过的地方,平均速度等等.

我的问题是这些: -

1)在ServiceWorkers触发的所有Message事件之前或之后,Focus事件是否会触发?

2)如果Focus是第一个,setTimer(0,backlogCleared)就足以作为一个启发机制来建立"处理所有背景的东西"吗?

3)是否有崩溃postMessage()消息(模式Firebase的推送通知),以便只收到最后/当前消息?

4)如果您对授权背景地理定位所需的权限有任何想法,请在W3C上添加它们.

欢呼和良好的骑马,跑步,帆船,驾驶!

javascript html5 web-applications geolocation service-worker

16
推荐指数
1
解决办法
4578
查看次数

调用并等待 google auth 的 Javascript 异步函数

如果我用 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)

javascript google-authentication async-await

5
推荐指数
0
解决办法
1067
查看次数

如何在ServiceWorker中处理会话过期

编辑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

5
推荐指数
1
解决办法
831
查看次数

我可以使用手机作为带有 Windows 10 登录选项的 webauthn 安全密钥吗

编辑: -

看看是不是只有我,或者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 不会将其识别为安全密钥。

这是可能的,还是功能受到限制?如果我们可以使用我们的手机作为安全密钥,我们就不需要特殊的加密狗来进行平台不可知的身份验证。

android google-chrome yubico webauthn fido

5
推荐指数
1
解决办法
429
查看次数