[英]How Cognito verifies password?
我可以使用AWS用戶池創建用戶
module.exports.signup = function(req, res, next) {
let attributeList = [];
let dataEmail = {
Name : 'email',
Value : req.body.username
};
let attributeEmail = new CognitoUserAttribute(dataEmail);
attributeList.push(attributeEmail);
userPool.signUp(req.body.username, req.body.password, attributeList, null, function(err, result){
if (err) {
console.log('Sigup failure:',err);
res.status(403).send(err.message);
}
let cognitoUser = result.user;
res.status(200).send({ "user": cognitoUser.getUsername() });
});
}
但似乎密碼不以任何方式存儲在用戶池中。 它暗示它應該存儲在其他地方,然后從那里檢索。 在AWS上存儲和驗證密碼的最簡單或最常用的方法是什么? 我注冊后無法登錄(假設密碼存儲問題)。 獲取“不正確的用戶名或密碼”錯誤。
Cognito不允許您查看存儲的密碼,它是部分安全性。 您可以使用javascript SDK對用戶進行身份驗證,如下所示:
var authenticationData = {
Username : 'username',
Password : 'password',
};
var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData);
var poolData = { UserPoolId : 'us-east-1_TcoKGbf7n',
ClientId : '4pe2usejqcdmhi0a25jp4b5sh3'
};
var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
var userData = {
Username : 'username',
Pool : userPool
};
var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
var accessToken = result.getAccessToken().getJwtToken();
/* Use the idToken for Logins Map when Federating User Pools with identity pools or when passing through an Authorization Header to an API Gateway Authorizer*/
var idToken = result.idToken.jwtToken;
},
onFailure: function(err) {
alert(err);
},
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.