Вы не можете изменить атрибуты пула пользователей после создания, независимо от того, создали ли вы пул пользователей вручную в консоли AWS или с помощью интерфейса командной строки Amplify (см. здесь ).
И, похоже, в CLI нет способа настроить пул пользователей таким образом, чтобы переключался переключатель «Адрес электронной почты или номер телефона», а не «Имя пользователя».
Итак, если вы хотите использовать электронную почту в качестве «имени пользователя» после запуска интерфейса командной строки Amplify, у вас есть два варианта:
Вариант 1
Оставьте все настройки пула пользователей как есть и вызовите метод signUp
следующим образом:
signup(email, password, email)
Первый аргумент - это имя пользователя, и вы просто используете для него адрес электронной почты, второй аргумент - пароль, а третий аргумент - адрес электронной почты (который может быть автоматически установлен CLI как «требуемый», если вы используйте подтверждение по электронной почте).
Вариант 2
Создайте новый пул пользователей вручную в консоли AWS и установите для радиокнопки атрибутов значение «Адрес электронной почты или номер телефона» во время создания.
![enter image description here](https://i.stack.imgur.com/tELNn.png)
В вашем файле main.ts
перезаписать конфигурации userPoolId
и userPoolWebClientId
из aws-exports.js
соответствующими значениями нового пула пользователей:
import Amplify from 'aws-amplify';
import amplify from './aws-exports';
Amplify.configure(amplify);
Amplify.configure({
Auth: {
userPoolId: 'us-east-1_jZIcja1eI',
userPoolWebClientId: '80e40l0hvvrct4avi3buceekf',
}
});
Вы можете найти значения здесь:
ID пула пользователей :
![enter image description here](https://i.stack.imgur.com/iztjI.png)
Для идентификатора веб-клиента пула пользователей создайте новый клиент приложения и скопируйте его идентификатор:
![enter image description here](https://i.stack.imgur.com/2mpke.png)
При создании клиента приложения снимите флажок «Генерировать секрет клиента», в противном случае при вызове метода signUp
будет Unable to verify secret hash for client
:
![enter image description here](https://i.stack.imgur.com/JJtMM.png)
В качестве имени клиента приложения вы можете выбрать что угодно.
Различия
С опцией 1 (вход с именем пользователя) теоретически вы можете иметь несколько учетных записей пользователей с разными именами пользователей, но с одним и тем же адресом электронной почты (без уникальности электронной почты, только имена пользователей должны быть уникальными).
При опции 2 (войти с адресом электронной почты) адрес электронной почты должен быть уникальным, то есть не может быть двух учетных записей с одним и тем же адресом электронной почты. С помощью этой опции для имени пользователя автоматически устанавливается автоматически сгенерированный «вспомогательный» идентификатор.
Следующие ошибки возвращаются при попытке зарегистрировать нового пользователя с уже существующим именем пользователя (вариант 1) или адресом электронной почты (вариант 2):
Имя пользователя (вариант 1):
![enter image description here](https://i.stack.imgur.com/GMZv0.png)
Адрес электронной почты (вариант 2):
![enter image description here](https://i.stack.imgur.com/yFqBf.png)