В настоящее время у меня есть приложение AWS Amplify (измененное для работы с Serverless), сконфигурированное для разрешения сторонней федерации с Cognito User Pool. Поскольку стиль Cognito Hosted UI не может быть полностью настроен, я решил обойти его, войдя (и выйдя) следующим образом:
Auth.federatedSignIn({ provider: 'Google' })
Auth.signOut()
При входе мое приложение может успешно запросить аутентификацию в Google, и мне будет предложено ввести адрес электронной почты и пароль. Это также регистрирует меня в моей учетной записи Google, которая, как я считаю, является обычной в процессе аутентификации OAuth 2.0.
Проблема возникает, когда я выхожу из своей учетной записи Google и моего приложения. После этого и повторного входа в мое приложение, я вошел в систему автоматически. Интересно, что я не снова вошел в свою учетную запись Google. Как будто мое приложение пропускает шаг для аутентификации в Google. Это все еще происходит, когда я очищаю куки, локальное хранилище и перезагружаю свой браузер.
Удивительно, но использование размещенного пользовательского интерфейса не страдает от этой проблемы. Выход из Google и последующий вход в мое приложение требуют повторной аутентификации каждый раз.
В противном случае я не могу понять, как мой браузер (Chrome, Firefox и Safari) может "запомнить" "кто я, как пользователь Google при входе в мое приложение. Как я уже упоминал, я попытался очистить файлы cookie и локальные данные и перезапустить браузер. Это не проблема в режиме инкогнито. Я попытался просмотреть исходный код , чтобы увидеть, где некоторые данные могут быть установлены в хранилище, но Amplify в основном полагается на локальное хранилище по умолчанию, которое очищается при выходе.
I мне интересно, видел ли кто-нибудь еще в обход размещенного пользовательского интерфейса такое поведение, или есть какая-то конкретная c конфигурация высокого уровня Amplify, с которой я мог ошибиться?