管理对私人和公共活动的访问

时间:2013-08-14 15:18:01

标签: android login sharedpreferences

我的应用程序Private activities只允许已登录的用户具有访问权限,并且Public activities每个人都可以访问。

我想知道什么是管理PrivatePublic活动访问权限的最佳方式。

我在考虑将用户的登录名和密码存储在SharedPreferences中,并在每个Private acitivity的开头验证它们以便在登录和密码存在时允许访问,如果不存在则拒绝它,但我不确定它是否可能,或者是否有更好的方法可以做到这一点。

1 个答案:

答案 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()并根据此设置活动特定设置。 例如,为了隐藏一些活动,您可以检查用户是否已登录并根据登录状态隐藏/显示该活动的按钮。