我正在构建一个针对 iPhone 和其他移动设备的离线网络应用程序。有什么方法可以使用 WebSql 本地存储保存用户身份验证?
因此,当您在离线时打开 Web 应用程序时,我希望要么用户已经登录,要么用户应该能够登录。
我正在构建一个针对 iPhone 和其他移动设备的离线网络应用程序。有什么方法可以使用 WebSql 本地存储保存用户身份验证?
因此,当您在离线时打开 Web 应用程序时,我希望要么用户已经登录,要么用户应该能够登录。
我不知道如何存储或使用客户端状态数据(iOS 中的钥匙串也在Android中),但对于 Web 应用程序而言,您无需执行任何操作。您不必做任何事情,因为如果可以的话,它是不安全的。登录后,服务器将设置仅存在几天或几周的HTTP cookie 。在这段时间内,向服务器发出的带有凭据的请求始终由浏览器进行身份验证。您可以从服务器请求登录电子邮件或其他任何内容。出于额外的安全目的,服务器可能会请求XSRF 令牌。在这种情况下,将其保存在 localStorage 中。失去这个令牌意味着什么。
这是最安全的方式,移动客户端也使用它,包括通过 WebView 进行的网上银行。使用浏览器进行身份验证是最安全和最简单的,因为存在很多弱点,例如凭据存储、检查正确的 ssl 证书、加密等。使用 webview,一切都由浏览器处理。
如果您对这些服务器代码的内容感兴趣,我对Appengine 跨域身份验证服务器代码进行了解释。
如果我正确理解了这个问题,那么您可以这样做:
登录时(在线):
登录(离线)时:
当然,这将要求用户在本地登录之前至少使用在线版本登录一次。例如,当有人在断开连接的情况下尝试登录其 Microsoft 帐户时,Windows 8 就是这样做的。