Простой способ аутентификации POST-запросов от клиента Google Android в Google App Engine? - PullRequest
10 голосов
/ 09 июля 2009

Я хотел бы иметь возможность отправить запрос POST из приложения Android в App Engine и связать его с учетной записью Google пользователя. Я прочитал, что вам нужно получить токен аутентификации и отправить его с запросом POST. Предоставляет ли Android способ запроса этого токена? И как GAE обработает это?

Я чувствую, что это должно быть легко, и я упускаю что-то очевидное.

Спасибо!

Ответы [ 2 ]

9 голосов
/ 09 июля 2009

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

Возможна программная аутентификация пользователей. В Python SDK модуль appengine_rpc выполняет эту функцию. В двух словах, процедура такова:

  1. Используйте ClientLogin для получения одноразового токена аутентификации, заданного именем пользователя и паролем пользователя.
  2. Сделайте POST-запрос к yourapp.appspot.com/_ah/login с аргументами continue = http://localhost/&auth=authtoken (где authtoken - токен одноразового использования, полученный на шаге 1).
  3. Перехватить ответ 302 и захватить возвращенный файл cookie Google.
  4. Предоставить куки на все последующие запросы.

Для мучительных подробностей см. Источник appengine_rpc.py, связанный выше.

2 голосов
/ 05 апреля 2010

Начиная с Android 2.0, вы можете использовать AccountManager для запроса токена авторизации для учетных записей типа com.google. Затем вы можете аутентифицировать пользователя в приложении App Engine, нажав URL:

http://[yourapp].appspot.com/_ah/login?auth=[theauthtoken]

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

В отсутствие примера кода, который делает именно это, вы можете проверить код Адаптера синхронизации образца *1013* (в комплекте с SDK) для общего представления о запросе токенов аутентификации.


РЕДАКТИРОВАТЬ : только что понял, что Ник написал о второй части, но бит AccountManager#getAuthToken является новым с Android 2.0.

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