Как мне поддерживать сессию в Android и что я должен хранить (хэшированные пароли или что-то еще), чтобы поддерживать состояние входа в систему - PullRequest
0 голосов
/ 18 апреля 2019

Я работаю над приложением для Android, которое требует входа в систему.Мне еще предстоит создать серверную часть для того же и требует некоторых предложений о том, как сохранить состояние входа в систему в приложении Android.Я знаю, что мы создаем сессии, когда речь заходит о веб-страницах.Я хотел знать, как и что я должен хранить в своем приложении для Android, чтобы мой сервер знал, что последующие запросы после входа в систему поступают от аутентифицированного устройства.Нужны ли нам токены или как это работает?

1 Ответ

1 голос
/ 18 апреля 2019

вы можете создать общий класс предпочтений для хранения ваших небольших данных, таких как информация о пользователе, и вы можете создать сеанс входа в систему следующим образом: -

ваш класс предпочтений: -

public class AppPrefrences {

    private static SharedPreferences mPrefs;
    private static SharedPreferences.Editor mPrefsEditor;

    public static boolean isUserLoggedOut(Context ctx) {
        mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
        return mPrefs.getBoolean("id_logged_in", true);
    }

    public static void setUserLoggedOut(Context ctx, Boolean value) {
        mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
        mPrefsEditor = mPrefs.edit();
        mPrefsEditor.putBoolean("id_logged_in", value);
        mPrefsEditor.commit();
    }
}

иКогда вы вошли в свое приложение, вы можете установить сеанс вашего сеанса, в котором вы вошли, таким образом, где ваш метод входа seccess: -

AppPreference.setUserLoggedOut(CompleteProfileActivity.this, false);

и во второй раз, когда вы открываете приложение, вы можете установить условие проверки на вашемЗаставка вот так: -

if (isUserLoggedOut(StartActivity.this)) {
                    startActivity(new Intent(StartActivity.this, LoginActivity.class));
                    finish();
                } else {
                    startActivity(new Intent(StartActivity.this, MainActivity.class));
                    finish();
                }
...