还记得使用部署到移动设备的纯HTML5应用程序登录的凭据吗?

时间:2018-09-10 13:31:16

标签: web-applications javascript mobile

我主要是后端程序员,但之前我已经做过一些移动前Web开发。

如果我创建的HTML5本机应用程序不过是HTML5和javascript(零本机移动应用程序代码),是否可以记住登录凭据?在移动设备上创建帐户后,我看到其他应用程序也会这样做。

这是流程,但是如果使用非本机移动应用程序可以实现#3,我将不知所措。

  1. 用户下载/安装移动应用程序。
  2. 他们启动,并首次通过帐户创建设置。
  3. 下次他们运行该应用程序时,我希望它会记住他们是谁,并向我传递适当的凭据,这样,他们每次启动该应用程序时都不必具有登录屏幕。

1 个答案:

答案 0 :(得分:0)

一旦用户成功通过身份验证,就可以将令牌从服务器传递到应用程序,并将该令牌存储在客户端应用程序的localStorage或indexedDB中。然后使用令牌登录该人。请确保该令牌实际上是包含令牌过期的序列化对象的一部分。例如:

"rememberLogin": {
    "token": "43f250704a6bc737c830cc43739973b14e67ada07dca378a1725c3106c8e4f0f607cf11e2a3a2b08e8c053c19ccc781faf4f549e0e42cf6e2fe3b018a35da0f513ffe577f6d241db54a83ef30584c06e",
    "expiry": "2018-09-10T16:35:00.304Z"
}

存储在客户端上的令牌的到期日期仅用于UX(您可以使用它在到期日期过后强制用户进入登录表单)。为了安全起见,请使用存储在服务器上的令牌的到期时间(而不是客户端上的令牌)来验证令牌的实际真实性。另外,请确保在每次成功的基于令牌的身份验证之后,删除数据库中的令牌或将其标记为已使用。同样在客户端上,您应该将旧令牌替换为新令牌。

我强调在本地存储令牌以促进“记住的登录”,而不是在本地存储用户的用户名和密码。切勿将用户名和密码存储在客户端上;如果这样做的话,它们很容易被发现,并且它们的敏感性要比带有到期日期的不可预测的令牌敏感得多。带有到期日期的令牌是解决方法。