我主要是后端程序员,但之前我已经做过一些移动前Web开发。
如果我创建的HTML5本机应用程序不过是HTML5和javascript(零本机移动应用程序代码),是否可以记住登录凭据?在移动设备上创建帐户后,我看到其他应用程序也会这样做。
这是流程,但是如果使用非本机移动应用程序可以实现#3,我将不知所措。
答案 0 :(得分:0)
一旦用户成功通过身份验证,就可以将令牌从服务器传递到应用程序,并将该令牌存储在客户端应用程序的localStorage或indexedDB中。然后使用令牌登录该人。请确保该令牌实际上是包含令牌过期的序列化对象的一部分。例如:
"rememberLogin": {
"token": "43f250704a6bc737c830cc43739973b14e67ada07dca378a1725c3106c8e4f0f607cf11e2a3a2b08e8c053c19ccc781faf4f549e0e42cf6e2fe3b018a35da0f513ffe577f6d241db54a83ef30584c06e",
"expiry": "2018-09-10T16:35:00.304Z"
}
存储在客户端上的令牌的到期日期仅用于UX(您可以使用它在到期日期过后强制用户进入登录表单)。为了安全起见,请使用存储在服务器上的令牌的到期时间(而不是客户端上的令牌)来验证令牌的实际真实性。另外,请确保在每次成功的基于令牌的身份验证之后,删除数据库中的令牌或将其标记为已使用。同样在客户端上,您应该将旧令牌替换为新令牌。
我强调在本地存储令牌以促进“记住的登录”,而不是在本地存储用户的用户名和密码。切勿将用户名和密码存储在客户端上;如果这样做的话,它们很容易被发现,并且它们的敏感性要比带有到期日期的不可预测的令牌敏感得多。带有到期日期的令牌是解决方法。