Как я могу создать 2 разных типа пользователей, используя AWS Cognito? - PullRequest
0 голосов
/ 04 мая 2020

Я хочу создать 2 разных пользователя, например "basicUser" и "admin", используя AWS Cognito. На данный момент я смог создать basicUser, используя AWS Amplify, который в основном использует AWS Cognito под капотом.

В документации AWS Amplify написано, что я могу вставлять пользовательские атрибуты в пользовательский объект, который будет сохранен. Пример отчета AWS Amplify:

const user = await Auth.signUp({
            username,
            password,
            attributes: {
                email,          // optional
                phone_number,   // optional - E.164 number convention
                // other custom attributes 
            }
        });

AWS Документация Amplify: https://docs.amplify.aws/lib/auth/emailpassword/q/platform/js#sign -up

Может ли это быть хорошим решением с использованием ролей атрибутов это массив ролей, которые может иметь пользователь? Это будет сделано на стороне кода с использованием Cognito API со ссылкой на эту документацию [Владелец приложения будет ответственным за подтверждение «запроса администратора» от пользователей]:

Обновление документации атрибутов: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html

Этот подход - плохая практика, и я мог бы сделать что-то лучше или это хорошее решение?

Заранее спасибо.

1 Ответ

2 голосов
/ 04 мая 2020

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

Однако есть и другой способ. Вы можете использовать Cognito группы. Всякий раз, когда пользователь создается, вы должны вызвать лямбда-функцию, чтобы назначить пользователя для группы. В разделе триггеров Cognito вы можете увидеть некоторые триггеры для использования. Тогда защита полностью со стороны сервера, а не с клиента.

...