Атрибуты пула пользователей отключены с помощью модуля AWS Amplify Authentication - PullRequest
0 голосов
/ 06 сентября 2018

Я настроил модуль Amplify Authentication с помощью набора инструментов CLI в своем угловом проекте.

Теперь я пытаюсь изменить настройку атрибутов моего пула пользователей в консоли Amazon Cognito, как указано в документации здесь: documentation

К сожалению, я вижу все поля отключенными в моей консоли.

Это отключено, потому что я что-то упустил в автоматической настройке или потому что сейчас это невозможно с CLI, и мне нужно предоставить ручную настройку?

Спасибо за ваши ответы,

Ответы [ 3 ]

0 голосов
/ 07 октября 2018

Вы не можете изменить атрибуты пула пользователей после создания, независимо от того, создали ли вы пул пользователей вручную в консоли AWS или с помощью интерфейса командной строки Amplify (см. здесь ).

И, похоже, в CLI нет способа настроить пул пользователей таким образом, чтобы переключался переключатель «Адрес электронной почты или номер телефона», а не «Имя пользователя».

Итак, если вы хотите использовать электронную почту в качестве «имени пользователя» после запуска интерфейса командной строки Amplify, у вас есть два варианта:

Вариант 1

Оставьте все настройки пула пользователей как есть и вызовите метод signUp следующим образом:

    signup(email, password, email)

Первый аргумент - это имя пользователя, и вы просто используете для него адрес электронной почты, второй аргумент - пароль, а третий аргумент - адрес электронной почты (который может быть автоматически установлен CLI как «требуемый», если вы используйте подтверждение по электронной почте).

Вариант 2

  1. Создайте новый пул пользователей вручную в консоли AWS и установите для радиокнопки атрибутов значение «Адрес электронной почты или номер телефона» во время создания.

    enter image description here

  2. В вашем файле 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

    • Для идентификатора веб-клиента пула пользователей создайте новый клиент приложения и скопируйте его идентификатор:

      enter image description here

      При создании клиента приложения снимите флажок «Генерировать секрет клиента», в противном случае при вызове метода signUp будет Unable to verify secret hash for client:

      enter image description here

      В качестве имени клиента приложения вы можете выбрать что угодно.

Различия

С опцией 1 (вход с именем пользователя) теоретически вы можете иметь несколько учетных записей пользователей с разными именами пользователей, но с одним и тем же адресом электронной почты (без уникальности электронной почты, только имена пользователей должны быть уникальными).

При опции 2 (войти с адресом электронной почты) адрес электронной почты должен быть уникальным, то есть не может быть двух учетных записей с одним и тем же адресом электронной почты. С помощью этой опции для имени пользователя автоматически устанавливается автоматически сгенерированный «вспомогательный» идентификатор.

Следующие ошибки возвращаются при попытке зарегистрировать нового пользователя с уже существующим именем пользователя (вариант 1) или адресом электронной почты (вариант 2):

Имя пользователя (вариант 1):

enter image description here

Адрес электронной почты (вариант 2):

enter image description here

0 голосов
/ 04 ноября 2018

Изменить 2019-04-11:

Больше нет необходимости обновлять файл конфигурации вручную.

В последней версии CLI теперь можно выбрать вход по электронной почте:

AWS CLI


Оригинальный ответ

Я обнаружил, что существует существующая проблема по этой теме, в которой упоминается способ адаптации атрибутов пула пользователей.

Просто измените файл amplify/backend/auth/<project_name>/<project_name>-cloudformation-template.yml

Сразу после строк:

Type: AWS::Cognito::UserPool
Properties:
  UserPoolName: !Ref userPoolName

Добавить строку:

  UsernameAttributes:
    - 'email'

И отправьте изменения с помощью amplify push

0 голосов
/ 10 сентября 2018

После создания пула пользователей невозможно изменить некоторые параметры (удалить атрибуты, изменить проверку подлинности смс). Поэтому, к сожалению, решение состоит в том, чтобы тщательно создать новый пул пользователей. У Aws есть эта проблема, возможно, в будущем они ее исправят.

...