2015-10-23 2 views
1

Я впервые попал в Android-разработки и, конечно, имею взрыв. У меня есть вопрос, однако, об общем подходе к аутентификации (для работы с бэкэнд).Android Authentication - Что такое стандарт?

Чтобы начать, вот, в ореховой скорлупе, что я разработал.

Используя документацию Google (link), я аутентифицирую пользователя, используя знак google в api. Я поставил логику, упомянутую в ссылке, в основной деятельности моего приложения. После запуска метода onConnected у меня есть успешно подключенный GoogleApiClient.

С подключенным теперь GoogleApiClient я использую вызов GoogleAuthUtil.getToken, чтобы получить токен oath2, который я использую для аутентификации запросов на моем бэкэнд. В принципе, в любой момент, когда я делаю HTTP-запрос к моему серверу, я включаю этот токен в качестве заголовка. Мой бэкэнд читает этот токен и использует API-интерфейс Python для проверки этого токена. В бэкэнд я использую электронную почту, встроенную в токен (теперь разобранный), чтобы убедиться, что пользователь, которому был выпущен этот маркер oauth2, фактически является пользователем моей системы.

Теперь, вот вопросы. Во-первых, похоже ли это на разумный подход к аутентификации на платформе Android? Что я могу потерять? Что может пойти не так?

Второй вопрос немного более прямой. Когда я получаю маркер oauth2 из клиентского приложения, я его храню и использую тот же токен каждый раз, когда делается запрос HTTP на защищенный ресурс. В конце концов, конечно же, токен истечет. Из некоторых ограниченных тестов с использованием эмулятора Android кажется, что если я выключу приложение и перезагрузив его, я получаю то же самое, истекший токен с помощью GoogleAuthUtil.getToken, вместо того, чтобы получать новый токен с новым истечением в будущем , В моих тестах мне пришлось перезапустить эмулятор, чтобы получить токен с правильным истечением срока действия. Я ошибаюсь здесь? Есть ли что-то особенное, что мне нужно сделать, чтобы сообщить API Google о выпуске нового токена? Нужно ли отключать GoogleApiClient и повторно подключать его? Я надеюсь избежать этого, чтобы ограничить количество действий, требующих выполнения обратных вызовов, необходимых для завершения этого процесса.

Любые слова мудрости здесь будут очень благодарны!

ответ

0

после того, как вы получили ваш маркер можно использовать Validate Token, и если это ответы с ошибкой: «invalid_token», вы можете использовать GoogleAuth.clearToken(Context context, String token), чтобы очистить маркер и получить новый маркер с помощью метода, который вы используете, чтобы получить токен аутентификации ,

Смежные вопросы