2017-05-12 38 views
0

我試圖建立一個基於cognito用戶池中的用戶管理。 我使用nodesjs + express作爲後端,所有對cognito的操作都將從nodejs完成。cognito池 - 未能上申請一個用戶

我的註冊路線

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過程中的錯誤:缺少所需的關鍵「 」在PARAMS

回答

0

A‘用戶名’屬性的用戶名總是需要註冊的用戶。所以你需要添加一個屬性列表。

如果你不要求用戶輸入用戶名或不需要一個爲你的使用情況,您可以使用來唯一地識別用戶的任何值只使用。這是一個簡單的方法來處理它。

因此,例如,在增加他們的電子郵件地址的電子郵件地址屬性之上,提交作爲用戶名的屬性了。

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