我的应用程序Private activities
只允许已登录的用户具有访问权限,并且Public activities
每个人都可以访问。
我想知道什么是管理Private
和Public
活动访问权限的最佳方式。
我在考虑将用户的登录名和密码存储在SharedPreferences
中,并在每个Private acitivity
的开头验证它们以便在登录和密码存在时允许访问,如果不存在则拒绝它,但我不确定它是否可能,或者是否有更好的方法可以做到这一点。
答案 0 :(得分:1)
我会通过SharedPreferences存储用户登录信息。但请务必以某种方式加密它们。如果你不这样做,每个人都可以从手机中复制shared_preferences.xml,如果密码是绿色的,则以明文形式查看密码。
管理登录状态的一个好方法是像这样的LoginManager:
public class LoginManager {
private static LoginManager singelton;
private Context context;
private boolean loggedIn;
private LoginManager(Context c) {
this.context = c;
}
public static LoginManager getInstance() {
return singelton;
}
public static void create(Context c) {
singelton = new LoginManager(c);
}
public boolean isLoggedIn() {
return loggedIn;
}
public boolean login(String name, String password) {
// get shared prefs and check for correct username/password
if(validCredentials)
loggedIn = true;
else
loggedIn = false;
return loggedIn;
}
public void logout() {
loggedIn = false;
}
}
在您的登录界面或者在Application.onCreate()中,您可以调用LoginManager.create(上下文c),然后使用LoginManager.getInstance()。login(名称,密码)让用户登录
要检查用户是否从任何活动登录,您可以调用LoginManager.getInstance()。isLoggedIn()并根据此设置活动特定设置。 例如,为了隐藏一些活动,您可以检查用户是否已登录并根据登录状态隐藏/显示该活动的按钮。