0

У меня возникла проблема с пониманием потока oauth2. Пользователь (идентифицированный user_id) инициирует соединение GoogleAccounts в браузере. Запрос передается сервлету, который отправляет перенаправление строки на клиент (Javascript), который, в свою очередь, перенаправляет пользователя на этот URL-адрес. С согласия пользователя возвращается ответный код обратного вызова (отображается на сервлет). My Confusion здесь, когда вызывается callback-сервлет, как определить, к какому пользователю (user_id) принадлежит этот authCode? Должен ли я использовать параметр состояния oAuth2?Google OAuth2 Поток на стороне сервера Веб-приложение в Java

Пожалуйста, помогите.

+0

Это может быть очень простой способ узнать, как использовать Google plus api. Http://developers.google.com/+/web/api/rest/latest/people/get отправит мне информацию о текущем аутентифицированном пользователе. Отправка маркера доступа в конечную точку проверки маркера также может работать, но в зависимости от области, которую вы запрашиваете – DaImTo

+0

@DalmTo Возможно, я не задал свой вопрос правильно. Более подробно В моем веб-приложении (аутентифицированный) пользователь, идентифицированный уникальным id, пытается связать свою (одну или несколько) учетную запись google в конце браузера. Серверная сторона (java) инициирует поток oauth, перенаправляет пользователя на authurl. После согласия пользователя на моем сервлете обратного вызова я хочу определить, какой пользователь (идентифицированный уникальным идентификатором) моего приложения инициировал подключение этой учетной записи google, поэтому я могу сохранить эту авторизацию Google против этого пользователя. Пожалуйста, помогите, я должен использовать State paran – zee

+0

Я думаю, вы можете попробовать параметр состояния, поскольку он будет нести user_id в ответ. В его описании говорится: Предоставляет любое состояние, которое может быть полезно для вашей заявки после получения ответа. Сервер авторизации Google округляет этот параметр, поэтому ваше приложение получает то же самое значение, которое оно отправило. Возможные варианты использования включают перенаправление пользователя на правильный ресурс на вашем сайте и смягчение межсайтового запроса-подделки. https://developers.google.com/identity/protocols/OAuth2UserAgent – Abhishek

ответ

0

Как следует из комментариев, параметр state является вашим другом. Самый простой способ - просто установить state=user_id. Альтернативным подходом было бы начать сеанс сервера и сохранить идентификатор пользователя в объекте сеанса. Этот последний подход предполагает, что у вас относительно простой сервер, или ваш кластер поддерживает общие сеансы.

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