离线时如何从登录页面开始使用渐进式网络应用程序

How to start using a progressive web app from login page when offline

我正在尝试将 Drupal 8 站点转换为渐进式 Web 应用程序。我已经缓存了用户使用 service worker 访问过的所有页面。是否可以缓存用户登录,以便用户在离线时可以从登录页面开始使用网络应用程序?

无论您以何种方式实施,总会存在安全风险。

话虽如此,与本机应用程序类似,虽然出于明显的安全原因您无法缓存登录服务,但您可以保持用户的登录状态。这意味着如果他们未登录,则无法登录,但如果他们之前在连接时已经登录,那么您可以让他们保持登录状态。

如果应用程序脱机工作并且我们需要身份验证,那么风险就是有人拿到了设备。由于网络上没有流量,因此可以最大限度地减少攻击面,并且无需担心 MitM 攻击或有人通过嗅探获取身份验证 cookie。

我认为这有助于了解您在离线时对身份验证的确切用途。如果我们谈论的是运输车(或不同的用户旅程),我建议存储某种形式的加密令牌(基于用户 ID + salt),用于识别用户。这些将在连接到 Internet 时成功登录后添加,并用于区分当前正在访问该站点的用户。

如果您需要身份验证才能访问某些机密数据,那么我建议您需要连接才能查看该数据,这样机密数据就永远不会存储在设备上。如果它存储在本地,则存在与您进行的身份验证无关的安全风险。