Можно ли получить атрибуты пользователя из aws когнито в javascript при загрузке страницы (перед входом в систему)? - PullRequest
0 голосов
/ 06 августа 2020

Я использую AWS когнито и успешно выполняю все свои требования. Однако есть сценарий, с которым я борюсь. У меня есть поле кода авторизации вместе с именем пользователя и паролем на странице входа в систему, и мое требование - заполнить это поле кода авторизации перед входом в систему.

Я успешно получаю атрибуты пользователя после входа в систему, но в этом случае мне нужно получить атрибут пользователя перед входом в систему, чтобы заполнить поле ввода.

Мой вопрос в том, можно ли получить указанный c атрибут пользователя (код аутентификации) до входа в систему?

Ниже приведено код для справки, который я использую для получения атрибутов пользователя при нажатии кнопки входа в систему. Пожалуйста, посмотрите.

function signInButton() {  
            var authcode = document.getElementById("authcode").value;
            var authenticationData = {
                Username : document.getElementById("inputUsername").value,
                Password : document.getElementById("inputPassword").value,
                Authcode : document.getElementById("authcode").value,
            };
            
            var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData);

            var poolData = {
                UserPoolId : _config.cognito.userPoolId, // Your user pool id here
                ClientId : _config.cognito.clientId, // Your client id here
            };
            
            var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
            
            var userData = {
                Username : document.getElementById("inputUsername").value,
                Pool : userPool,
            };
            
            var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
            var userid = document.getElementById("inputUsername").value;
            console.log('userid: ',userid)
            if(authcode=='1234'){
                cognitoUser.authenticateUser(authenticationDetails, {
                    onSuccess: function (result) {
                        var accessToken = result.getAccessToken().getJwtToken();
                        /////Getting User Attributes//////
                        AWS.config.update({region:'us-east-1'});
                        var params = {
                            AccessToken:  accessToken
                        };
                        var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
                        cognitoidentityserviceprovider.getUser(params, function(err, data) {
                            if (err) {
                                console.log(err, err.stack);
                            } // an error occurred
                            else{
                                console.log(data);
                            } // successful response
                        })
                        /////// End /////////
                        if(accessToken!=null || accessToken!=''){
                            $.post("testapi.php", {userid: userid}, function(result){
                                console.log('result: ',result); 
                                if(result.includes("accept")){
                                    window.open("landing.php?status=Logged In","_self");
                                }else{
                                    alert('Unauthorized User ID. Please try again with correct ID!')
                                }
                            }); 
                        }
                        console.log(accessToken);   
                    },

                    onFailure: function(err) {
                        alert(err.message || JSON.stringify(err));
                        window.open("landing.php?status=Not Logged In","_self");
                    },
                });
            }else{
                alert('Incorrect Authentication Code. Please try again');
            }
        }

Пожалуйста, предложите возможное решение.

Спасибо

...