Настраиваемый поток аутентификации с помощью aws amplify cognito

#react-native #authentication #amazon-cognito #aws-amplify #federated-identity

#react-native #аутентификация #amazon-cognito #aws-amplify #федеративная идентификация

Вопрос:

Я хочу создать настраиваемый поток аутентификации при регистрации в сервисе aws amplify cognito

Что у меня есть

1.Введите имя пользователя

2.Введите пароль

3. Подтвердите пользователя с помощью Otp (номер телефона) / код подтверждения (электронная почта)

Чего я хочу

1.Введите имя пользователя

2.Введите Otp /код подтверждения

3.Введите пароль

Как добиться такого потока регистрации с помощью сервиса aws amplify cognito, иначе какой сервис или подход лучше

Ответ №1:

Желаемый сценарий можно реализовать с помощью настраиваемого потока аутентификации, но здесь есть некоторые оговорки:

  • Вы не можете использовать MFA от Cognito с настраиваемым потоком аутентификации. Это просто невозможно. У меня есть корпоративная учетная запись в AWS, и я поднял этот вопрос с нашим представителем, и его даже не было в их бэклоге. Это означает, что вам нужно реализовать свой собственный SMS OTP или использовать для этого API twilio ($).
  • пользовательский интерфейс, размещенный на cognito, не поддерживает пользовательскую аутентификацию, вам нужно будет переделать ВЕСЬ пользовательский интерфейс самостоятельно (например, сбросить ссылки на пароли и т. Д., А не просто войти в систему).
  • поскольку вы будете выполнять вызовы API, а не использовать размещенный пользовательский интерфейс, вы потеряете все преимущества oauth, не предоставите код или области действия oauth. Это означает, что вам нужно выполнить кучу дополнительной работы, чтобы обеспечить безопасную работу в сеансе мобильной аутентификации, по сути, вам нужно будет каким-то образом переопределить code grant с помощью PKCE.

Если вы хотите сделать это, вы можете использовать пользовательский поток аутентификации, это довольно сложно, но вот статья, которая помогла мне, когда я это делал: https://dev.to/duarten/passwordless-authentication-with-cognito-13c

Я бы посоветовал придерживаться размещенного пользовательского интерфейса, если это возможно, или не использовать Cognito. Набор функций Cognito намного меньше, чем у других поставщиков аутентификации (но он дешевле).