2014-12-21 4 views
10

На прошлой неделе я наводнил себя ссылками и провел себя слишком много кругов, чтобы считать, поэтому я подумал, что поставил бы здесь вопрос. У меня есть приложение для Android, которое отображает веб-просмотры, указывающие на URL-адреса, которые пользователь должен войти в свою учетную запись Google, чтобы увидеть (бэкэнд построен в Google App Engine). Поскольку конечный пользователь, скорее всего, будет подписан в свою учетную запись Google на своем Android в любом случае, я бы хотел, чтобы процесс входа в систему был автоматическим. В настоящее время на первом веб-просмотре пользователь открывает форму, представленную в форме входа в систему Google, и действительно уродливую последующую страницу с просьбой «разрешить example.appspot.com использовать вашу учетную запись Google?»Автоматически входить в учетную запись Google на веб-сайте Android

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

Я прочитал Nick's учебное пособие по аутентификации приложения с App Engine, но просто наличие токена не дает мне уникально назначенного идентификатора пользователя, связанного с каждой учетной записью Google на сервере. Кроме того, предыдущий опыт научил меня тому, что сеанс веб-просмотра приложения несовместим с сеансом HTTPClient приложения. Поэтому, даже если бы я мог войти в систему с методом Ника, это не помогло бы мне войти в веб-обзор.

Тогда я наткнулся на this tutorial, что на самом деле кажется действительно многообещающим, но до сих пор мне не удалось адаптировать его код для работы с моим собственным.

Я также нашел this SO link, который предполагает, что все, что мне нужно сделать, это передать токен аутентификации (который я мог бы, по-видимому, получить через метод Ника) в каждый веб-просмотр, который я загружаю в качестве файла cookie.

И это все. Все они довольно разные, поэтому мне интересно, действительно ли кто-то из них, что я хочу. Или, если где-то там существует достаточно простой подход. Я бы очень признателен, если кто-то знает о прямом ответе на этот вопрос. Спасибо!

+1

Вы когда-нибудь находили решение? – AlleyOOP

ответ

1

Из соображений безопасности WebViews не имеют доступа к кешу телефона, хранилищу файлов cookie и т. Д., Вместо этого рекомендуется использовать новый Chrome Custom Tabs, который может автоматически регистрировать пользователей.


Что касается «вы хотите разрешить example.appspot.com использовать свою учетную запись Google?» экран; это стандартный процесс OAuth и требует, чтобы Пользователь выполнил вход и разрешил вашему приложению получать доступ к своей учетной записи.

В вашем приложении App Engine для приложения example.appspot.com, если вы используете API, для которого требуется информация о пользователе, например API-интерфейс Google Calendar, требуется, чтобы вы специально запрашивали у Пользователя их одобрение для доступа к этой информации ,

После того, как вы получили одобрение, вы можете сохранить access and refresh tokens, чтобы совершать будущие вызовы API от их имени без необходимости повторного согласия пользователя. Вы можете видеть, как весь поток Oauth работает в OAuth 2.0 Playground.

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


Вы можете посмотреть на новом Firebase Authentication потоке легко управлять опытом OAuth вашего пользователя в вашем приложении App Engine.

+0

Спасибо, Джордан - это старый вопрос, но с тех пор Google значительно улучшил этот процесс с Firebase Auth. – Pete

Смежные вопросы