Поток Oauth для Google - PullRequest
       8

Поток Oauth для Google

0 голосов
/ 22 ноября 2011

Я пытаюсь привлечь Oauth к моему веб-приложению для Google. Я работаю над POC, и он работает нормально, но у меня путаница и я не уверен, как лучше всего этого достичь.

Я использую Java Scribe API для Oauth.

вот шаги, которые я выполняю.

  1. Получение токена запроса от Google.
  2. Перенаправление пользователя в Google для самостоятельной аутентификации и авторизации моего сервиса для доступа к его / ее нескольким деталям.
  3. получить Access Toekn от Google, предоставив маркер запроса и код подтверждения, предоставленный Google.
  4. Доступ к информации о пользователе, как только Google предоставит токен доступа.

Теперь моя главная путаница - это шаг № 3, так как я работаю над веб-приложением, поэтому процесс будет двухэтапным.

  1. Перенаправление пользователя на Google
  2. Обработка обратного перенаправления Google.

Чтобы получить токен доступа, мне нужно предоставить тот же токен запроса, который я получил на шаге 1, иначе мой запрос был отклонен пользователем. Токен запроса содержит 2 вещи

  1. Toekn -> который основан на зарегистрированном приложении, поэтому не проблема
  2. Secret -> Это всегда случайная строка, поэтому она должна быть одинаковой при запросе токена доступа

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

Моя путаница заключается в том, что для того, чтобы сохранить его в сеансе, мне нужно создать уникальный ключ и какой-то способ получить к нему доступ в другом классе действий, который будет обрабатывать Google Redirect, как я могу добиться этого, поскольку в данное время Многие пользователи могут попросить войти в систему с помощью Google.

любая помощь в этом отношении будет очень ценной.

Заранее спасибо

1 Ответ

1 голос
/ 24 ноября 2011

Когда вы получаете request token + token secret, используйте request token в качестве уникального ключа вашего сеанса для хранения информации о токене.После процесса авторизации в URL-адресе обратного вызова у вас есть доступ к request token (это один из параметров, передаваемых в URL-адрес обратного вызова).Используя этот параметр в качестве ключа сеанса, вы можете восстановить информацию токена из сеанса, включая token secret, и использовать его для подписи вашего запроса на изменение request token для access token.После получения access token вам возвращается новый token secret, и вы можете удалить старый из сеанса.

как я могу добиться этого, поскольку в данный момент так много пользователей могут задатьвойти в систему с помощью Google

Это не проблема, потому что для каждого пользователя на вашем сайте вам присваивается другой request token.

...