Что лучше подходит для автоматического входа пользователя в приложение Android? - PullRequest
0 голосов
/ 18 мая 2018

Я хочу включить автоматический вход пользователя в мое приложение android.

Кроме того, я не хочу хранить токен пользователя / пароль пользователя в хранилище ключей / любом другом хранилище.

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

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

  1. Отправка идентификатора устройства на сервер при первом входе в систему и со второго раза авторизация пользователя с идентификатором пользователя и идентификатором устройства...
  2. Хранение зашифрованного имени пользователя и пароля в хранилище устройства и ввод ключа в хранилище ключей и при авторизации по отпечатку пальца, отправка расшифрованного имени пользователя и пароля на сервер для получения токена доступа.

Или любой другой подход для эффективной авторизации пользователя?Какой предпочтительный подход используется большинством банковских приложений для авторизации пользователя без многократного запроса пароля?

1 Ответ

0 голосов
/ 18 мая 2018

Вот идея:

Используйте Shared Preference для автоматического входа в систему.Когда пользователи входят в ваше приложение, сохраняйте статус входа в sharedPreference и очищайте sharedPreference, когда пользователи выходят из системы.

Пример:

public class SaveSharedPreference 
{
    static final String PREF_USER_NAME= "username";

    static SharedPreferences getSharedPreferences(Context ctx) {
        return PreferenceManager.getDefaultSharedPreferences(ctx);
    }

    public static void setUserName(Context ctx, String userName) 
    {
        Editor editor = getSharedPreferences(ctx).edit();
        editor.putString(PREF_USER_NAME, userName);
        editor.commit();
    }

    public static String getUserName(Context ctx)
    {
        return getSharedPreferences(ctx).getString(PREF_USER_NAME, "");
    }
}

Теперь при запуске приложения сначала проверьте:

if(SaveSharedPreference.getUserName(MainActivity.this).length() == 0){
     // call Login Activity
}else{
     // Stay at the current activity.
}

При входе в систему при успешном входе пользователя в систему установите UserName с помощью функции setUserName().

Вот ССЫЛКА с дополнительной информацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...