Код Stripe Connect, обработанный AWS Amplify Auth

#angular #stripe-payments #aws-amplify

#angular #stripe-платежи #aws-amplify

Вопрос:

В моем проекте Angular я настроил AWS Amplify с OAuth и размещенным пользовательским интерфейсом.

Все работает нормально. Когда я хочу подключиться к Google, меня перенаправляют обратно с помощью URL, подобногоhttp://localhost:4200/?code=de79bfa4-xxxxxxamp;state=2xxxxxx который хорошо обрабатывается AWS Amplify Hub.

Теперь я хочу настроить Stripe Connect в своем проекте, который также использует поток подключения OAuth.

Итак, я настраиваю свою ссылку OAuth, как определено в документации, добавив ссылку, как показано ниже:

 <a class="stripe-connect" href="https://connect.stripe.com/oauth/authorize?response_type=codeamp;client_id=ca_xxxxxxamp;scope=read_write"><span>Connect with Stripe</span></a>
  

Проблема

Я перенаправлен обратно с URL-адресом, подобнымhttp://localhost:4200/stripe?scope=read_writeamp;code=ac_xxxxxx

К сожалению, этот URL-адрес также обрабатывается Amplify, и я получил следующее сообщение об ошибке :

zone.js:1152 POST https://[домен].amazoncognito.com/oauth2/token 400

ОШИБКА core.js: 15724 Ошибка: Не обнаружен (в обещании): Ошибка: invalid_grant

Ошибка: invalid_grant

Что понятно, потому что Amplify пытается обрабатывать код Stripe Connect..

Но я не знаю, как исправить это поведение.

Есть идеи по решению этой проблемы?

Для воспроизведения

  1. Настройте репозиторий примеров с помощью пользовательского интерфейса Amplify Auth, размещенного на хостинге
  2. Отредактируйте идентификатор клиента Stripe в stripe.component.html
  3. Запуск проекта
  4. Подключитесь к Google
  5. Перейдите к настройкам
  6. Нажмите на ссылку «Подключиться с помощью Stripe»
  7. В форме Stripe нажмите «Игнорировать эту форму учетной записи»
  8. Увидеть ошибку

Сообщение об ошибке

Ответ №1:

Я связался с командой Amplify, и это нормальное поведение:

https://github.com/aws-amplify/amplify-js/issues/3157

С потоками OAuth в Amplify и потоком предоставления кода, как только вы перенаправитесь обратно от третьей стороны, Amplify автоматически проанализирует URL-адрес для извлечения кода и использует это для получения учетных данных от конечной точки третьей стороны / токена.

К сожалению, в настоящее время мы не можем добавлять исключения или даже фильтры для Amplify, чтобы не выполнять автоматический анализ URL.