是否可以在AWS Cognito注册表单上获取自定义属性?

问题描述 投票:2回答:2

我正在构建一个将实施帐户链接的Alexa技能。当用户使用我的技能时,他们必须使用Alexa App登录。

身份验证UI由Amazon Cognito设置和管理,因此我无需为我的Alexa应用程序托管自己的登录和注册UI。

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

amazon-web-services oauth-2.0 aws-lambda amazon-cognito alexa-skill
2个回答
0
投票

如果我没有弄错你需要添加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.')
});

0
投票

我也很感兴趣,但我认为使用Amazon Cognito托管的登​​录网页是不可能的。我在Amazon Cognito指南上找到了这些信息:https://docs.aws.amazon.com/en_us/cognito/latest/developerguide/cognito-user-pools-app-integration.html

在本文档的最后,我发现:

注意

Amazon Cognito托管的登​​录网页不支持自定义身份验证流程。

© www.soinside.com 2019 - 2024. All rights reserved.