2017-05-12 12 views
0

私はCognitoユーザープールに基づいてユーザー管理を構築しようとしています。 私はバックエンドにnodesjs + expressを使用しています.cognitoへのすべての操作はnodejsから実行されます。コグニートプール - ユーザー登録に失敗しました

私のサインアップルートが

app.post('/signup', (req, res) => { 
let userName = req.body.userName; 
let email = req.body.email; 
let familyName = req.body.familyName; 
let password = req.body.password; 

let attributeList = []; 

let dataEmail = { 
    Name: 'email', 
    Value: email 
}; 

let name = { 
    Name: 'name', 
    Value: userName 
}; 

let familyname = { 
    Name: 'family_name', 
    Value: familyName 
}; 

let attributeEmail = new AmazonCognitoIdentity.CognitoUserAttribute(dataEmail); 
let attributeName = new AmazonCognitoIdentity.CognitoUserAttribute(name); 
let attributeFamilyName = new AmazonCognitoIdentity.CognitoUserAttribute(familyname); 

attributeList.push(attributeEmail); 
attributeList.push(attributeName); 
attributeList.push(familyname); 

let userPool = new CognitoUserPool(poolData); 
userPool.signUp(email, password, attributeList, null, (err, result) => { 
    if (err) { 
     console.log(`got error during signup ${err}`); 
     res.sendStatus(500); 
    } else { 
     let cognitoUser = result.user; 
     console.log('user name is ' + cognitoUser.getUsername()); 
     res.sendStatus(200); 
    } 

    }); 

}); 

しかし、私は失敗を取得していますされると、それはエラーがパラメータが欠落してい どのように来る見つけることができません。

はサインアップMissingRequiredParameter中にエラーが発生しました:行方不明に必要なキーを "ユーザー名を入力してください

答えて

0

ユーザーを登録するには、常に「username」属性が必要です。したがって、属性リストに1つ追加する必要があります。

ユーザーにユーザー名を要求していない場合や、ユースケースに必要なものを使用しない場合は、使用している値を使用してユーザーを一意に識別できます。これは簡単な方法です。

たとえば、電子メールアドレスを電子メールアドレス属性に追加するのに加えて、それもusername属性として送信します。

参考: http://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html

関連する問題