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

问题描述 投票:0回答:1

我主要是一名后端程序员,但之前我做过一些移动前的网络开发。

如果我创建的本机HTML5应用程序只是HTML5和javascript(零原生移动应用程序代码),有没有办法记住登录凭据?我在移动设备上创建帐户后看到其他应用。

这是流程,但如果使用非原生移动应用程序可以实现#3,我无法理解。

  1. 用户下载/安装移动应用程序。
  2. 他们启动,并在第一次通过帐户创建设置。
  3. 下次他们运行应用程序我希望它会记住他们是谁并传递给我相应的凭据,这样我每次启动应用程序时都不必拥有登录屏幕。
web-applications javascript mobile
1个回答
0
投票

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

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

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

我强调本地存储令牌以方便“记住登录”,而不是本地存储用户的用户名和密码。切勿在客户端上存储用户名和密码;如果你这样做,它们很容易被发现,并且它们比具有截止日期的不可预测的令牌更敏感。具有到期日期的令牌是要走的路。

© www.soinside.com 2019 - 2024. All rights reserved.