4

为移动应用程序实施身份验证的最佳方法是什么,既安全又不会在每次应用程序启动时都要求进行身份验证来惹恼用户?换句话说,用户第一次安装手机应用程序后,需要注册/登录,之后该应用程序始终可以运行,无需进行身份验证。

原生移动应用程序在首次使用该应用程序时要求提供凭据,但随后它们不需要登录。应用程序刚启动并尝试连接到数据网络(wifi、3g 等),如果找到数据网络,则加载最新数据,否则使用上次访问时能够获取的数据数据网络。此外,该应用程序能够在数据网络可用时自动重新连接,并在无需用户干预的情况下获取最新数据。

我尝试使用流星移动应用程序(accounts-password、useraccounts:core、useraccounts:ionic)开发类似的功能,但是该应用程序经常超时并在每次数据网络丢失时要求重新登录。有时它甚至会挂在登录屏幕上,唯一的出路就是杀死该应用程序。该行为似乎与 Web 应用程序非常相似,其中创建了会话 ID 并具有空闲超时,或者在互联网连接出现问题时强制登录。

关于如何在首次登录时存储凭据并在随后使用它的任何提示;以及频繁断开连接时处理数据网络的好方法?

框架:1. Meteor 平台 2. AngularJS 的 Ionic 3. ngCordova

代码结构: 1.公共目录,所有meteor方法调用和模式定义(简单模式)的地方。2. 应用程序文件按照指南(客户端、服务器、资源)进行组织。

我在 stackoverflow 上找到的解决方案之一:

将带有初始登录详细信息的 UDID 或 mac 地址发送到您的服务器。为该用户/UDID(或 mac)组合创建一个唯一令牌,如果用户名/密码成功,则将其发送回(加密)到设备。在后续访问中,设备会发送加密令牌和 UDID/mac(通过安全连接)以进行重新身份验证。

如果您想让偏执的人轻松跟踪 UDID,您可以改用 UDID/mac 对加密令牌进行加盐,但这不会那么安全,但应该仍然可以完成这项工作。

感谢您的帮助,谢谢!

4

0 回答 0