Базовый вход в Google Account Manager для Android

Я разрабатываю приложение для Android и хочу, чтобы оно входило в систему через учетные записи, сохраненные на телефоне пользователя.

Я нашел эту статью: https://developers.google.com/google-apps/tasks/oauth-and-tasks-on-android

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

Что ты предлагаешь?

Спасибо


person user1389345    schedule 11.05.2012    source источник


Ответы (1)


Я зависит от того, что вы подразумеваете под «логином». Если вы действительно хотите использовать учетную запись Google для аутентификации, вам необходимо интегрировать OAuth или OpenID в свое приложение и использовать Google в качестве поставщика удостоверений (StackOverflow делает это: вы можете войти в систему с помощью своей учетной записи Google) на своем сайте/веб-приложении. Если вам нужно только получить адрес GMail пользователя, вы можете получить его с помощью менеджера аккаунта. Поскольку им необходимо пройти аутентификацию хотя бы один раз, чтобы он появился в списке учетных записей, вы можете быть достаточно уверены, что это действительно их адрес.

person Nikolay Elenkov    schedule 11.05.2012
comment
Да, но oAuth делает то, чего я не хочу - выходить из приложения, а затем где-то заполнять информацию для входа, которую я уже заполнил в своем телефоне. - person user1389345; 11.05.2012
comment
И я не могу использовать электронную почту для аутентификации, кто-нибудь может изменить ее по пути к серверу. Мне нужен какой-то токен, который я тоже могу проверить на сервере. Ну, я мог бы использовать API Gmail, но я не знаю, есть ли у всех с учетной записью Google GMail. - person user1389345; 11.05.2012
comment
Они не могут измениться, если вы используете HTTPS. Что именно ты пытаешься сделать? - person Nikolay Elenkov; 11.05.2012
comment
И, конечно же, это: developers.google.com/accounts/docs/MobileApps. - person Nikolay Elenkov; 11.05.2012
comment
Это приложение, подключенное к серверу, на котором у пользователя есть учетная запись. Они могут войти напрямую с именем и паролем или через facebook или google. Вот и все, мне просто нужно сопоставить пользователей с их учетными записями. Что ж, насчет HTTPS... Когда кто-то каким-то образом получает мой секрет (который я использую в API для своего сервера) пока... ничего страшного не может случиться, они могут просто загрузить какие-то публичные списки данных. Но с аутентификацией только по электронной почте они могли получить доступ к любой учетной записи. Поэтому я бы предпочел использовать двойную проверку (на клиенте и сервере). - person user1389345; 11.05.2012
comment
Спасибо, я пробовал эту ссылку раньше, но она открывает окно браузера - это мне не нужно. - person user1389345; 11.05.2012
comment
Идея состоит в том, чтобы встроить WebView в ваше приложение, чтобы не было окна приложения. На самом деле это идея OAuth и подобных протоколов: пользователи предоставляют свои учетные данные только тем службам, которым они уже доверяют (GMail, Facebook), поэтому видеть свою страницу входа на самом деле хорошо. - person Nikolay Elenkov; 11.05.2012
comment
Я понимаю, это работает по какому-то принципу, как вход в Facebook. Но это то, что я пытаюсь вам сказать: я хочу сделать что-то еще, взять учетные записи из AccountManager, которые сохранены на телефоне, и сгенерировать токен, который я могу использовать для аутентификации. Почему? Потому что пользователю проще сделать подтверждение одним щелчком мыши, чем заполнять всю форму входа. Теперь я могу получить токен для определенного API (Latitude, GMail, Tasks), но не какой-то общий токен. Я попытался найти какое-нибудь приложение, которое делает то же самое. Вы знаете некоторые? Спасибо - person user1389345; 12.05.2012
comment
Верно. Но нет «общего» токена, вам нужно создать его для своего приложения и соответствующим образом проверить. Но опять же, Andorids AccountManager`, вероятно, не будет поддерживать это. Если вы используете App Engine, вы можете получить токен OAuth для своего приложения. Если вы работаете в какой-то другой инфраструктуре, вам необходимо интегрировать OAuth, и он может работать или не работать с AcountManager (это не совсем хорошо документировано). - person Nikolay Elenkov; 12.05.2012
comment
Хорошо, спасибо за вашу помощь. Я либо сделаю это с помощью AccountManager и разрешений для GMail, либо просто OAuth... - person user1389345; 14.05.2012