Android应用程序如何存储状态[关闭]

问题描述 投票:-3回答:4
我想问一问,从手机登录应用程序后,密码存储在哪里。我需要了解在移动应用程序中如何保存状态的工作机制。
android
4个回答
2
投票
没有用于存储用户凭据的特定位置。关键是我们应该能够在编写它的地方进行读写。

主要是使用sharedPreferences。这是一个保存在特定于该特定应用程序的文件夹中的文件。当我们卸载应用程序或清除数据时,将清除该错误。它存储数据作为键,值对。

实际上,我们不存储用户名和密码。当我们向服务器提交用户名和密码时,如果凭据有效,则会得到一个access token作为响应。那将是一个字符串,并保存在sharedPreferences中。下次打开应用程序时,我们首先检查sharedPreferences中是否已经存在令牌。如果是,我们直接进入应用程序内部,可以使用此令牌对任何服务器调用进行身份验证。如果不存在此类令牌,​​则转到登录屏幕。


1
投票
有多种不同的实现方法。

[如果您使用后端服务对用户进行身份验证,例如Firebase Auth,则在服务器端对用户名和密码进行身份验证,并且会向您传递回oAuth2令牌,该令牌可让客户端验证他们是否已被授权(已记录中)访问数据库。后端API Auth的实现非常多种多样,并且取决于您的数据库。 (MongoDB,Amazon,Firebase等)。

否则,您可以使用SharedPreferences存储对用户进行身份验证后是否登录。我不建议此实现,因为它易于开发,建议您使用上述API方法,并在用户每次进入您的应用程序时对其进行身份验证。身份验证并不意味着登录...它会与服务器一起仔细检查其oAuth2令牌以确保其有效。


1
投票
存储密码不是很安全。通常,应用程序会存储一些令牌(尽管它实际上取决于身份验证方法)。除了Antonio的回答外,Android还发布了EncryptedSharedPreferences,它可以对密钥和值进行加密以提供更高的安全性。

0
投票
它已保存在数据库中,但不是纯文本格式。在存储密码之前,会对密码进行哈希处理,并在检查登录信息时对给定的密码进行哈希处理,并使用数据库中的哈希密码进行验证。
© www.soinside.com 2019 - 2024. All rights reserved.