I am building an Alexa Skill that will implement Account Linking. When a user uses my skill, they would have to use the Alexa App to sign-in.
The Authentication UI is set up and managed by Amazon Cognito so that I don’t have to host my own sign-in and sign-up UI for my Alexa application.
My User Pool in Cognito has two standard and one custom attribute.
The sign-up form (hosted by Cognito) includes text-fields for the standard attributes, but not for the custom attributes. I want text-fields for all attributes (standard and custom). I couldn't find any documentation that shows how to allow this. How do I do it?
If i am not mistaken you need to add 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.')
});