Amplify - Как настроить congnito для использования электронной почты в качестве имени пользователя? - PullRequest
0 голосов
/ 03 октября 2019

Используя AWS Amplify для создания аутентификации (Cognito) с Reactjs, именем пользователя по умолчанию является UUID. Поэтому, когда я захожу в систему, я вижу:

Привет f725e4a2-1f24-487d-9265-864947f5c5eb

Как мне изменить это поведение? Может быть способ изменить это во внешнем интерфейсе, но я хотел бы изменить это во внутреннем интерфейсе, потому что список пользователей в Cognito также имеет идентификаторы UUID. Вместо этого я хотел бы видеть электронную почту в качестве имени пользователя.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

В настоящее время нет способа обновить его после создания пула пользователей.

В папке ampify вы увидите папку awscloudformation, в которой содержится файл "nested-cloudformation"-stack.yml "

найти этот" usernameAttributes "в файле и заменить его электронной почтой, а не именем пользователя

"usernameAttributes": "email",

Кроме того, вы можете установить его только перед созданием пула Cognito

0 голосов
/ 03 октября 2019

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

Перейдите к консоли и настройте новый пул пользователей непосредственно в Интернете, который предоставит вамвойдите с опцией электронной почты

congnito

, а затем обновите конфигурацию Auth с новыми сведениями о пуле пользователей.

Пример из aws-amplify

import Amplify, { Auth } from 'aws-amplify';

Amplify.configure({
    Auth: {

        // REQUIRED only for Federated Authentication - Amazon Cognito Identity Pool ID
        identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX-1234-abcd-1234567890ab',

        // REQUIRED - Amazon Cognito Region
        region: 'XX-XXXX-X',

        // OPTIONAL - Amazon Cognito Federated Identity Pool Region 
        // Required only if it's different from Amazon Cognito Region
        identityPoolRegion: 'XX-XXXX-X',

        // OPTIONAL - Amazon Cognito User Pool ID
        userPoolId: 'XX-XXXX-X_abcd1234',

        // OPTIONAL - Amazon Cognito Web Client ID (26-char alphanumeric string)
        userPoolWebClientId: 'a1b2c3d4e5f6g7h8i9j0k1l2m3',

        // OPTIONAL - Enforce user authentication prior to accessing AWS resources or not
        mandatorySignIn: false,

        // OPTIONAL - Configuration for cookie storage
        // Note: if the secure flag is set to true, then the cookie transmission requires a secure protocol
        cookieStorage: {
        // REQUIRED - Cookie domain (only required if cookieStorage is provided)
            domain: '.yourdomain.com',
        // OPTIONAL - Cookie path
            path: '/',
        // OPTIONAL - Cookie expiration in days
            expires: 365,
        // OPTIONAL - Cookie secure flag
        // Either true or false, indicating if the cookie transmission requires a secure protocol (https).
            secure: true
        },

        // OPTIONAL - customized storage object
        storage: new MyStorage(),

        // OPTIONAL - Manually set the authentication flow type. Default is 'USER_SRP_AUTH'
        authenticationFlowType: 'USER_PASSWORD_AUTH'
    }
});

// You can get the current config object
const currentConfig = Auth.configure();

Или обновите файл aws-exports.js напрямую, указав новые сведения о пуле.

Если ваше приложение уже работает, вам может потребоваться перенести пользователей.

Как изменить атрибуты пула пользователей Amazon Cognito после создания будет хорошим руководством

...