Аутентификация из Android-клиента в Google App Engine Webapp2

У меня есть веб-приложение (Webapp2) с серверной частью Google App Engine. Аутентификация выполняется с использованием пользовательского идентификатора пользователя/пароля с использованием платформы Webapp2.

Теперь я расширяю это веб-приложение для мобильных устройств с помощью клиента Android. Как выполнить аутентификацию от клиента Android к серверной части Google App Engine? Поддерживают ли конечные точки Google Cloud аутентификацию с пользовательским идентификатором пользователя и паролем?


person Jack tileman    schedule 13.03.2015    source источник


Ответы (2)


Это зависит от того, для чего используется аутентификация. Вам нужно, чтобы пользователи разрешали доступ к своим данным, или вы просто защищаете службы REST, предоставляемые вашему приложению?

Облачные конечные точки используют OAuth 2.0, который может аутентифицироваться с использованием учетных записей Google, или вы также можете авторизоваться с помощью «служебной учетной записи» для своего приложения, если согласие пользователя не требуется. Хорошим источником информации является документация [1]. Конечно, ничто не мешает вам реализовать собственную схему аутентификации или использовать другие библиотеки так же, как если бы вы разместили свой мобильный сервер на какой-либо другой платформе.

Еще один хороший документ, посвященный мобильной аутентификации, — «Аутентификация пользователей в мобильных приложениях» в [2].

[1] https://cloud.google.com/appengine/docs/java/endpoints
[2] https://developers.google.com/accounts/docs/MobileApps

person Adam    schedule 14.03.2015
comment
Я использую свой собственный идентификатор пользователя / пароль, поэтому не могу использовать учетные записи Google. - person Jack tileman; 15.03.2015

Думаю, вас может вдохновить https://github.com/coto/gae-boilerplate.

Это огромная тема для обобщения :) Но я постараюсь изо всех сил.

Сначала вы должны прочитать о том, что такое поток клиента OAUTH и поток сервера. (Вы можете решить, какой из них использовать.) Затем я буду использовать Facebook в качестве примера.

Допустим, вы используете Facebook SDK на Android для аутентификации своего пользователя. Обычно, если они уже прошли аутентификацию в своем приложении facebook, вы получите UserID и AccessToken, а также некоторую другую информацию, возвращенную вам. Это Facebook говорит вам: «Да, вы можете доверять этому парню. Вот его id и информация».

Затем вы можете использовать эту информацию для хранения в собственной пользовательской базе данных (или в хранилище данных на жаргоне GAE). Так что позже вы сможете сказать, кто есть кто, когда они входят в систему со своим конкретным идентификатором, привязанным к вашему пользователю. (У одного пользователя может быть другой идентификатор провайдера.) Просто запомните это.

Теперь вернитесь и посмотрите на реализацию gae-boilerplate: https://github.com/coto/gae-boilerplate/blob/master/bp_includes/handlers.py

Посмотрите на три класса обработчиков: LoginHandler, SocialLoginHandler, CallbackSocialLoginHandler.

person beast    schedule 16.03.2015
comment
Зверь - я прочитал файлы Readme, но не могу понять. Я новичок в разработке Android/GAE. Можете ли вы помочь обобщить шаги, связанные с аутентификацией от клиента Android обратно в GAE (с использованием webapp2). Просто краткое изложение высокого уровня в потоке? - person Jack tileman; 16.03.2015
comment
Это огромная тема для обобщения :) - person beast; 30.04.2015
comment
Я расширил свои ответы, Джек. Посмотри. - person beast; 30.04.2015