什么是实现一次性登录功能的最佳方式

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

我希望我的应用程序具有以下功能:

首次在手机上安装应用程序时,用户使用用户名和passowrd登录。成功登录后,每次用户再次启动应用程序时,应用程序都不会再次请求登录凭据,而是直接显示登录屏幕。 (当然,如果用户清除应用数据,应用会再次要求登录)

在我脑海中实现该功能的方法可能是,一旦用户成功登录,应用程序就会在SharedPreferences中存储用户名和密码,然后,当用户再次启动应用程序时,我的代码可以检查ShareadPrefereces中是否有用户名和密码,如果是,直接显示着陆页。

我的问题:

我不确定在SharedPreferences中存储用户的登录凭证是否安全或是一种好的做法?如果没有,实施此一次性登录功能的最佳方法是什么?

(我正在为Android和iOS做这件事。所以,我想听听Android的好解决方案和iOS解决方案。谢谢!)

android ios android-sharedpreferences
1个回答
0
投票

将凭证存储在SharedPreferences中是一种不好的做法。事实上,将凭证存储在用户设备的任何位置都是不好的。

使用一些加密库,例如Hawk for android会更好,但仍然不推荐选项。

更好的方法需要在后端进行一些工作:作为对用户凭证的回报,服务器将返回一个可用于授权的令牌。令牌将在一段固定的时间内过期(如日,周等)。在此时间过去之前,您可以提出另一个请求并更新您的令牌以换取另一个星期(日,月等)。

更好的方法是使用Hawk(或其他类似的lib)保存令牌

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