This nice tutorial - очень хорошее введение в аутентификацию учетной записи на Android и ее использование, используя AccountManager
Android.Android OAuth2 Рекомендации по использованию токена для новичков
Однако мне нужно создать клиентское приложение для API OAuth2 с использованием токена-носителя для аутентификации. Во время получения токена я получаю временную метку истечения срока его действия, но я не понимаю, где хранить и как правильно использовать его. Проблема в том, что если я не хочу иметь ненужные поездки на сервер, приложение поймет, что носитель стал недействительным только после того, как он получил ошибку HTTP 401 с сервера при запросе любого случайного ресурса. Итак, что лучше всего для решения этой проблемы:
- Должен ли каждый сетевой запрос в моем коде иметь механизм повтора в случае, если токен-носитель стал недействительным? Я бы, вероятно,
invalidateAuthToken
, когда ловить исключения и повторить попытку. - Может Sync Adapter как-то помочь здесь?
Поскольку я новичок в разработке Android, я ожидаю, что решение может также быть чем-то совершенно другим, чем я ожидаю.
Если это необходимо, я намерен использовать Volley для связи с сервером.
Может ли кто-нибудь указать мне, насколько это безопасно, когда вы используете диспетчер аккаунта для сохранения токена аутентификации и обновления токена? Мы столкнулись с группой аудиторов безопасности, которые говорят, что менеджер аккаунта небезопасен, чтобы сохранить данные токена. Но я не могу найти подходящий способ держать их в другом месте. –
@sahan, все хранится в открытом тексте в диспетчере учетных записей, но доступно только на корневом устройстве. Точка токенов должна позволять отменять аутентификацию, не подвергая пользователей истинную регистрационную информацию, вы не должны беспокоиться о том, как вы храните их на устройстве. – sixones