1

Мое приложение использует Google OAuth2 наряду с безопасностью Spring. Реализация примера - here.Google App Engine - несколько сеансов пользователя

Проблема >> У меня есть несколько пользователей, подписанных в моем браузере Chrome. Пользователь может быть обычным пользователем Google или пользователем домена Google Apps. Я не понимаю, почему мое приложение перенаправляет на https://appengine.google.com/_ah/loginform?state=####.

The first user selection page После того, как я выбираю пользователя из предоставленных опций, интерфейс UserService принимает учетные данные выбранного пользователя. Но снова после этого мне предлагается страница выбора аккаунта.

enter image description here

В моем приложении я использовал createLoginURL() из UserService для перенаправления пользователя на страницу входа в систему. Кроме того, если я выбираю другого пользователя со страницы выбора учетной записи, второй запрашивается второй, UserService по-прежнему сохраняет учетные данные пользователя, выбранного с первой страницы.

Проблема, с которой я столкнулся, заключается в том, как обновить мою UserService в соответствии с выбранным пользователем. Также, если пользователь переключается на вторую учетную запись с страницы Google (поиск, диск, почта и т. Д.), Как я могу повторно создать UserService с измененными учетными данными пользователя. Можно ли использовать «authUser» или «session_state» заголовков запросов или любые другие значения, чтобы вызвать событие в приложении из-за изменения пользователя. Мне известно о том, что сеансы в Google App Engine поддерживаются с использованием объекта хранилища данных _ah_SESSION, и у меня есть cron, чтобы удалить истекшие, а также на месте. Все работает отлично, если браузер имеет только один пользователь, зарегистрированный в Google.

Короче говоря, как сохранить несколько пользовательских данных входа с помощью интерфейса UserService?

+0

Этот вопрос не очень читабельен, он будет улучшен за счет скриншотов и потребует большего объяснения каких-либо файлов кода/конфигурации, которые вы используете для создания ситуации входа. – Nick

+0

Я обновил ваши предложения @Nick – akgaur

ответ

0

Если вы заметили, что пользователь подключился к вашему приложению, он не зависит от того, какой пользователь выполнил вход и активирован на другой вкладке для службы google, такой как gmail или диск, это, как вы объяснили, из-за хранения файлов cookie сеансов в вашем приложении и того факта, что они не обновляются ни на одном «сигнале» с вкладки gmail, drive и т. д. Если вы хотите управлять несколькими входами в App Engine с помощью службы «Пользователи», вам следует нажать и выставить this public issue tracker feature request.