Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何让用户登录脱机web应用程序?_Jquery_Html_Web Applications_Local Storage_Web Sql - Fatal编程技术网

Jquery 如何让用户登录脱机web应用程序?

Jquery 如何让用户登录脱机web应用程序?,jquery,html,web-applications,local-storage,web-sql,Jquery,Html,Web Applications,Local Storage,Web Sql,我正在开发一个针对iPhone和其他移动设备的离线web应用程序。是否有任何方法可以使用WebSql本地存储保存用户身份验证 因此,当您在脱机状态下打开web应用时,我希望用户已经登录,或者用户应该能够登录。如果我正确理解了这个问题,您可以这样做: 登录时(联机): 针对服务器进行身份验证,如果正确,则在WebSql数据库中存储用户名和哈希密码(例如使用) 如果该帐户已存在于本地数据库中,请生成一个新的哈希,以防用户自上次登录后更改了密码 登录(脱机)时: 根据本地数据库进行身份验证 当

我正在开发一个针对iPhone和其他移动设备的离线web应用程序。是否有任何方法可以使用WebSql本地存储保存用户身份验证


因此,当您在脱机状态下打开web应用时,我希望用户已经登录,或者用户应该能够登录。

如果我正确理解了这个问题,您可以这样做:

登录时(联机):

  • 针对服务器进行身份验证,如果正确,则在WebSql数据库中存储用户名和哈希密码(例如使用)
  • 如果该帐户已存在于本地数据库中,请生成一个新的哈希,以防用户自上次登录后更改了密码
登录(脱机)时:

  • 根据本地数据库进行身份验证

当然,这将要求用户在本地登录之前至少使用在线版本登录一次。例如,当有人试图在断开连接的情况下登录到他们的Microsoft帐户时,Windows 8就是这样做的。

我不知道如何存储或使用客户端状态数据(也在中),但从web应用的角度来看,您不必做任何事情。你不必做任何事情,因为如果你能做到,它是不安全的。登录后,服务器将设置为持续几天或几周。在此期间,对服务器的请求始终由浏览器进行身份验证。您可以从服务器请求登录电子邮件或任何内容。出于额外的安全目的,服务器可能会请求。在这种情况下,请将其保存在localStorage中。失去这个代币意义不大

这是最安全的方式,移动客户端也可以通过WebView使用,包括网上银行。使用浏览器进行身份验证是最安全和最简单的,因为存在许多弱点,例如凭据存储、检查正确的ssl证书、加密等。使用webview,浏览器会处理所有问题


如果您对这些服务器代码感兴趣,我已经解释了。

有趣的问题,这意味着您必须在本地存储用户凭据,这不是很安全。不知道是否有任何安全的方法或最佳实践可以实现这一点。需要考虑的是,如果根据定义,检查凭据是在javascript客户端上完成的,那么,通过在应用程序中篡改js属性来模拟/绕过身份验证将是微不足道的。然后假设,例如,当您重新联机时,客户端数据被同步到服务器,这可能会导致问题。