簡體   English   中英

Cognito如何驗證密碼?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM