Можно ли получить пользовательские атрибуты в форме регистрации AWS Cognito? - PullRequest
2 голосов
/ 24 марта 2019

Я создаю навык Alexa, который будет реализовывать привязку аккаунта.Когда пользователь использует мои навыки, ему нужно будет использовать приложение Alexa для входа в систему.

Интерфейс аутентификации настроен и управляется Amazon Cognito, поэтому мне не нужно размещать свой собственный вход.пользовательский интерфейс входа и регистрации для моего приложения Alexa.

Мой пул пользователей в Cognito имеет два стандартных и один настраиваемый атрибут.

Форма регистрации (размещена на Cognito) включает в себя текстовые полядля стандартных атрибутов, но не для пользовательских атрибутов.Я хочу текстовые поля для всех атрибутов (стандартных и пользовательских).Я не мог найти документацию, которая показывает, как это разрешить.Как мне это сделать?

I have two standard and one custom attributes. I need all of them from user.

But the sign up form is not showing the input field for custom attribute

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Мне тоже было интересно, но я думаю, что невозможно использовать веб-страницу входа, размещенную на Amazon cognito. Я нашел эту информацию в руководстве Amazon Cognito: https://docs.aws.amazon.com/en_us/cognito/latest/developerguide/cognito-user-pools-app-integration.html

В конце этого документа я нашел:

Примечание

Веб-страница входа в Amazon Cognito не поддерживает пользовательские поток аутентификации.

0 голосов
/ 25 марта 2019

Если я не ошибаюсь, вам нужно добавить custom:<YOUR_ATTRIBUTE_NAME>

var poolData = {
    UserPoolId : <POOL_ID>,
    ClientId : <CLIENT_ID>,
};
var userPool = new AWSCognito.CognitoUserPool(poolData);

var attributeList = [];

var dataEmail = {
    Name : 'email',
    Value : 'email@mydomain.com'
};

var dataPhoneNumber = {
    Name : 'phone_number',
    Value : '+15555555555'
};
var grandMaName = {
    Name : 'custom:grandMaName',
    Value : 'granny'
};
var attributeEmail = new AWSCognito.CognitoUserAttribute(dataEmail);
var attributePhoneNumber = new AWSCognito.CognitoUserAttribute(dataPhoneNumber);
var attributeGrandMaName = new AWSCognito.CognitoUserAttribute(grandMaName);
attributeList.push(attributeEmail);
attributeList.push(attributePhoneNumber);
attributeList.push(grandMaName);

userPool.signUp(userData.Username, userData.Password, attributeList, null, function(err, result){
    if (err) {
        console.log(err);
        return;
    }
    cognitoUser = result.user;
    console.log('user name is ' + cognitoUser.getUsername());
    console.log('Now go to Cognito console and confirm the user.')
});
...