Как использовать пользовательский интерфейс, размещенный на AWS Cognito, для потока предоставления кода авторизации

0

Вопрос

Я использую интерфейс командной строки Amplify для создания пула пользователей Cognito для моего веб-приложения React. Я обнаружил, что пользовательский интерфейс withAuthentication не отвечает моим потребностям, потому что я не могу настроить форму входа (например, удалить поле номер телефона) или защитить только часть моего приложения.

Вместо этого я хотел бы использовать размещенный пользовательский интерфейс, предоставляемый Cognito, но я не знаю, как реализовать поток предоставления кода авторизации. Есть ли простая в использовании библиотека npm, которая поможет мне в этом?

Я попытался напрямую вызвать конечную точку /authorize, как описано в документах, но получил ошибку cors при вызове с локального хоста. Я также пробовал использовать окно.location.ref для перенаправления на размещенный URL-адрес, на который ссылается консоль Cognito. Это работает, но когда я возвращаюсь на указанную страницу (после обратного вызова), анализирую код из строки запроса и отправляю запрос POST в конечную точку /token, как описано в документах, я получаю код состояния 400. Есть ли что-то еще, что мне нужно здесь сделать?

Я очень новичок в OAuth, поэтому был бы признателен за любые простые объяснения или указания на основные материалы, которые может понять новичок, было бы здорово!

amazon-cognito aws-amplify oauth-2.0
2021-11-22 06:18:38
1

Лучший ответ

0

Мои ресурсы используют поток кода с Cognito и дадут вам что-то, с чем можно сравнить:

Пара советов:

  • Зарегистрируйте клиент OAuth в своем пуле пользователей, чтобы исправить ошибку CORS
  • Отследите сообщения OAuth из браузера и сосредоточьтесь на том, чтобы получать их так же, как мои

Мой образец кода легко запустить в моей конечной точке Cognito. Хотя он не использует React или Amplify, но как только вы поймете принципы, вам будет легко перенести их на ваши собственные технологические решения.

2021-11-22 14:43:42

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

Популярное в этой категории

Популярные вопросы в этой категории