#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 намного меньше, чем у других поставщиков аутентификации (но он дешевле).