2015-04-20 5 views
1

У меня есть три стороны:авторизированных пользователей использовать REST API с помощью служб Google

  1. (мой) RESTful API позади SSL.
  2. (my) Android-приложение, в котором установлена ​​кнопка «Войти» Google.
  3. (my) Веб-приложение, которое позволяет пользователю регистрироваться через свою учетную запись Google через OAuth.

То, что я хотел бы быть в состоянии сделать это:

  1. Сформировать что-то, когда пользователь входит в систему на мобильном устройстве.
  2. Сравните это с чем-то еще, что я могу создать на сервере для этой учетной записи Google.
  3. Если две части соответствуют совпадению, дайте приложению новый созданный токен, который он может использовать во всех последующих вызовах API в течение определенного периода времени.

Как мне обойти это? Я читаю документацию OAuth, но я изо всех сил пытаюсь понять, что это за «что-то» и «что-то еще». Любая помощь будет оценена.

ответ

1

Я решил это, но я не уверен, что это лучший способ сделать это.

Для Google я посылаю пользовательский идентификатор uid и авторизации, который я получил в приложении, GoogleAuthUtil.getToken(). На сервере я перехожу на https://www.googleapis.com/oauth2/v1/tokeninfo?fields=user_id&access_token={token}, где {token} - это токен, полученный мной из моего мобильного приложения. Если user_id в ответе OAuth2 соответствует uid, который был предоставлен API, а совпадения uid для некоторой записи пользователя в моей базе данных, этот пользователь считается аутентифицированным.

Для Facebook я делаю то же самое, за исключением того, что использую session.getAccessToken(...), чтобы получить токен со стороны приложения и https://graph.facebook.com/me?fields=id&access_token={token}, чтобы подтвердить его с помощью Facebook.

2

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

https://developers.google.com/identity/protocols/OAuth2InstalledApp

но этого недостаточно, это хорошее чтение, но не решает наши проблемы в все.

Другие показания Полезные по данной теме должны быть в этом (которым говорит: «Это быстрый старт приложение позволяет начать работу с Google идентичности Toolkit на Android примерно 30 минут.»):

https://developers.google.com/identity/toolkit/android/quickstart#step_2_configure_the_google_identity_toolkit_api

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

Надеюсь, это поможет кому-то еще.

+0

Спасибо за следующее. Я действительно решил это в своем приложении. Не уверен, что это лучший способ, но сейчас он отлично работает. – 0x4B1D