Авторизация учетной записи Google в приложении для Android

Я пишу приложение для Android, которое взаимодействует с удаленным сервером, и я хочу разрешить пользователям приложения входить на сервер, используя учетные данные Google, которые находятся на их телефоне, т. е. не требуя от пользователя ввода пароля Google в любом месте моего приложения.Например, если телефон пользователя (Android) настроен на (скрытый), а затем они устанавливают и запускают мое приложение, мое приложение представит им диалоговое окно с сообщением «Вы хотите войти как (скрытый) и после нажатия кнопки Кнопка «ОК» они установили бы идентификатор на моем сервере, который знает, что их адрес электронной почты (скрыт), как сертифицировано самим Google.

Я нашел широко распространенные и разнообразные частичные рецепты того, как это сделать, включая собственный oauth2 документации, но так и не понял, как это сделать.

У меня есть код Android, который использует AccountManager, чтобы выяснить, какие учетные записи Google находятся на данном телефоне. Я подсказываю пользователю, какую учетную запись Google они используют. хочу использовать для входа в систему, а затем получаю обратно токен авторизации.

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

http://<myWebServer>.com/_ah/login?continue=<someUrlIChoose>&auth=<authToken>

... который (а) неудовлетворителен тем, что он, по-видимому, специфичен для аппенгина и Я хочу свободно запускать это на любом сервере по моему выбору, и (б) даже экспериментируя с appengine, экземпляр appengine, который я настроил, похоже, вообще не сигнализируется, т.е. журналы теперь показывают запросы к нему (Я надеялся, что URL-адрес someUrlIChoose будет вызван с чем-то)... следовательно, нет возможности узнать о действительности токена.

Конкретные вопросы включают:

  • Что мне делать с токеном авторизации...отправить его на мой сервер, и каким-то образом мой сервер свяжется с Google, чтобы проверить действительность токена для указанной учетной записи? Или есть какой-то обратный канал общение, которое предполагается уже иметь (на данном этапе процесс) исходит от серверов Google, чтобы сообщить моему серверу, что этот токен действителен (и если да, то как его настроить)? Или что-то еще?
  • Прав ли я, предполагая, что этот процесс должен быть выполним в контекст любого бэкэнда (не только appengine)?
  • Следует ли использовать oauth2 (в отличие от oauth1 или чего-то подобного? еще)? Все, что я читал, похоже, подразумевает, что Google поддерживает oauth2 является "экспериментальным"... но я не установил, есть ли такой утверждения являются текущими или старыми; и даже если актуально, у google есть история хранения различных продуктов в постоянной не окончательной форме (например, вечная бета), так что не знаю, что по этому поводу сделать.
  • Все остальное, что имеет значение...
7
задан user1390182 12 May 2012 в 01:57
поделиться