2013-05-08 4 views
1

Я пытаюсь войти в приложение Google Plus в приложении Android (с поддержкой бэкэнд).Аутентификация Google Plus в приложении для Android

Я мог бы получить токен доступа и адрес электронной почты от пользователя, но знаю, что не знаю, как я должен распознавать этого пользователя с сервера. Я отправляю это на сервер (адрес электронной почты и oauth токен) с POST через SSL

Конечно, я мог бы узнать их по электронной почте, но это откроет двери для всех, как узнать другое электронное письмо, которое находится в базе данных.

Как я могу проверить правильность аутентификации пользователя и отправил мне правильный токен oauth для этого письма?

Спасибо!

+0

пользователь нажимает на вход с G +, подтверждает подлинность и ваше приложение получает маркер. вы можете получать данные с помощью этого токена? где вам нужно использовать идентификатор электронной почты? вы поддерживаете учетные записи пользователей локально или что-то еще? – divyanshm

+0

Хавьер Манцано, не могли бы вы разместить код, который вы использовали для аутентификации пользователя. – Manikandan

ответ

2

Две мысли:

1) Как правило, вы не должны посылать маркер аутентификации по сети, если вы можете помочь ему. Вместо этого вы должны использовать гибридный поток, когда клиент получает один временной код при его аутентификации, передает вам этот один временной код, и вы можете его выкупить для токена аутентификации и токена обновления. Используя этот метод, ваш сервер также имеет автономный доступ от имени пользователя. См. https://developers.google.com/+/web/signin/server-side-flow. Однако, я не совсем уверен, как это работает с библиотекой Android.

2) Независимо от (1), как правило, вы можете использовать метод plus.people.get на сервере с идентификатором пользователя «я», чтобы получить идентификатор пользователя пользователя и проверить его на то, что вы ожидая. См. https://developers.google.com/+/api/latest/people/get для более подробной информации.

1

Ваш идеальный случай использования потока кода авторизации.

См. Это link. В нем есть диаграммы рабочих процессов, которые вы, возможно, захотите увидеть. В вашем случае пользователь должен аутентифицировать и получить код авторизации (а не токен!).

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

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

И, как уже упоминал @Prisoner, у вас также будет доступ к сети. Это было бы намного лучше.

EDIT - вы также можете взглянуть на What is the difference between the 2 workflows? When to use Authorization Code flow?

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