web-dev-qa-db-fra.com

Est-il possible d'obtenir des attributs personnalisés sur le formulaire d'inscription AWS Cognito?

Je construis une compétence Alexa qui mettra en œuvre la liaison de compte. Lorsqu'un utilisateur utilise mes compétences, ils devraient utiliser l'application Alexa pour vous connecter.

L'assurance-chômage d'authentification est configurée et gérée par Amazon Cognito afin que je n'ai pas besoin d'accueillir ma propre connexion et mon intermédiaire de l'interface utilisateur de mon application Alexa.

Mon pool d'utilisateurs à Cognito a deux attributs standard et un attribut personnalisé.

Le formulaire d'inscription (hébergé par Cognito) inclut des champs de texte pour les attributs standard, mais pas pour les attributs personnalisés. Je veux des champs de texte pour tous les attributs (standard et personnalisé). Je n'ai pas trouvé de documentation qui montre comment permettre cela. Comment fait-on ça?

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

6
thedreamsaver

J'étais également intéressé, mais je pense qu'il n'est pas possible d'utiliser la page Web de connexion hébergé par Amazon Cognito. J'ai trouvé ces informations sur Amazon Cognito Guide : https://docs.aws.amazon.com/en_us/cognito/latest/developerguide/cognito-user-pools-app-Integration.html ==

À la fin de ce document, j'ai trouvé:

Remarque

La page Web AMAZON COGNITO HIGHED SIGNIFE SUITE ne prend pas en charge le flux d'authentification personnalisé.

2
calabrone

Si je ne me trompe pas, vous devez ajouter 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 protected]'
};

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.')
});
1
Dawid K.