Я пишу приложение для Android, которое взаимодействует с удаленным сервером, и я хочу разрешить пользователям приложения входить на сервер, используя учетные данные Google, которые находятся на их телефоне, т. е. не требуя от пользователя ввода пароля Google в любом месте моего приложения.Например, если телефон пользователя (Android) настроен на (скрытый), а затем они устанавливают и запускают мое приложение, мое приложение представит им диалоговое окно с сообщением «Вы хотите войти как (скрытый) и после нажатия кнопки Кнопка «ОК» они установили бы идентификатор на моем сервере, который знает, что их адрес электронной почты (скрыт), как сертифицировано самим Google.
Я нашел широко распространенные и разнообразные частичные рецепты того, как это сделать, включая собственный oauth2 документации, но так и не понял, как это сделать.
У меня есть код Android, который использует AccountManager, чтобы выяснить, какие учетные записи Google находятся на данном телефоне. Я подсказываю пользователю, какую учетную запись Google они используют. хочу использовать для входа в систему, а затем получаю обратно токен авторизации.
После этого момента я в значительной степени раскручиваю свои колеса. Рецепты, которые я рассматривал, похоже, призывают меня выполнить этой формы:
http://<myWebServer>.com/_ah/login?continue=<someUrlIChoose>&auth=<authToken>
... который (а) неудовлетворителен тем, что он, по-видимому, специфичен для аппенгина и Я хочу свободно запускать это на любом сервере по моему выбору, и (б) даже экспериментируя с appengine, экземпляр appengine, который я настроил, похоже, вообще не сигнализируется, т.е. журналы теперь показывают запросы к нему (Я надеялся, что URL-адрес someUrlIChoose будет вызван с чем-то)... следовательно, нет возможности узнать о действительности токена.
Конкретные вопросы включают: