我希望在应用中拥有用户个人资料系统;这个应用程序绝对没有敏感数据。我知道如何保护用户密码/用户名等安全登录。但这是我的问题...一旦登录确认用户名/密码组合是正确的,我可以这样做:< /强>
使用Sharedpreferences将登录变量从0设置为1.当用户注销时,它将返回0。 因此,只要应用程序中有一个需要检查用户是否已登录的功能,它就会检查此首选项变量的状态。
这是一种安全的方式吗?或者有更好的方法吗?
(通常在PHP中我使用会话变量,不确定Android等价物是什么。)
答案 0 :(得分:2)
不要使用共享偏好,有太多可能出错的事情,例如:你的应用FC或被Android杀死,没有机会更新它们。
您可以覆盖Application类并使用静态值(可能是boolean)来指示用户已登录。
这是一些伪代码,展示了如何覆盖Application。它类似于全局变量,但不要过度使用并将所有数据放在此处;)
public class MyApp extends Application{
public static boolean isUserLoggedIn = false;
...
public void userLogin(){
MyApp.isUserLoggedIn = true;
...
public void userLogout(){
MyApp.isUserLoggedIn = false;
...
}
因为该字段是静态的并且初始化为false,所以每次应用启动时,您都可以保证它是错误的。唯一可行的方法是,如果它在您的应用中设置为代码。
您还需要将扩展类添加到清单中:
<application android:name=".MyApp"
...