Гаджет OAuth2 от аутентификации OpenID

Я обновляю свое приложение до OAuth2 и у меня есть несколько вопросов.

Адрес электронной почты — это идентификатор пользователя в нашем приложении.

  • Как объяснялось в старых документах для ассоциации openid с идентификатором пользователя в нашем приложении, мы показывали всплывающее окно, сохраняющее open_social_id в базе данных и создающее временный ключ сеанса. После того, как пользователь был успешно связан, мы добавили open_social_id рядом с идентификатором пользователя, просматривая временный ключ сеанса. Это было/работает нормально. https://developers.google.com/google-apps/marketplace/best_practices#gadget_sso

Но с oauth2, поскольку мы получаем адрес электронной почты (из области контактов текущего пользователя, который вошел в систему), я пытаюсь выяснить, как аутентифицировать его на моем сервере? Должен ли я сопровождать адрес электронной почты с помощью open_social_id и полагаться на open_social_id каждый раз в будущем? Это правильный путь?

Или я должен добавить прокси-сервер OAuth2 на свой сервер, чтобы разрешить доступ с правильной областью.

Спасибо.


person cloudpre    schedule 20.03.2014    source источник


Ответы (1)


Вам не нужно слишком сильно меняться.

В старой настройке вы отображали всплывающее окно, которое проходило через openId, чтобы получить личность пользователя и адрес электронной почты.

В новой настройке вы показываете всплывающее окно, которое выполняет танец OAUTH2, чтобы получить личность пользователя и адрес электронной почты.

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

person koma    schedule 21.03.2014
comment
Означает ли это следующее? Подписание запроса, который отправляет open_social_id. Сохранение его в бэкэнде и создание файла session_key. Пользователь дает согласие через всплывающее окно (session_key в качестве параметра) с использованием OAuth2. Пользователь сопоставляется с open_social_id на основе session_key после завершения аутентификации. Затем пользователь отправляет open_social_id, и сервер ищет его. - person cloudpre; 24.03.2014
comment
Другой связанный вопрос. Есть ли способ после танца OAuth2 автоматически отправить параметры обратно на гаджет? Это устранит связь session_key с open_social_id. Пользователь выполнит аутентификацию oauth, и мы автоматически сохраним адрес электронной почты. window.parent не работал, так как он междоменный. Есть идеи или правильно ли open_social_id+Session+popup+Associating-open_social-with-contact? - person cloudpre; 24.03.2014
comment
Откройте всплывающее окно и передайте open_social_id. После аутентификации у вас есть и open_social_id, и адрес электронной почты во всплывающем окне, и вы отправляете оба на сервер. сохранить эту корреляцию. с этого момента любой запрос от гаджета с opensocialid может быть связан с адресом электронной почты. Не нужно усложнять вещи с сеансовыми ключами. - person koma; 24.03.2014
comment
Как передать open_social_id, поскольку он известен только при подписании? Должен ли сервер отправить свой open_Social_id обратно в ответ. Спасибо. - person cloudpre; 24.03.2014
comment
когда гаджет запустится, выполните вызов io.makeRequest на сервер, чтобы узнать, знаете ли вы личность. если вы это сделаете, все в порядке. если нет, верните open_social_id и запустите всплывающее окно. - person koma; 24.03.2014