AWS congito не может пройти аутентификацию при использовании настраиваемого домена в Amazon Cognito Identity SDK для JavaScript - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь использовать собственный домен для аутентификации Cognito, мы не хотим использовать конечную точку Amazon по умолчанию cognito-idp.us-east-1.amazonaws.com, поскольку наши клиенты не считают ее заслуживающей доверия. Я попытался выполнить do c на https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-add-custom-domain.html, но это не сработало. мой nodeJS код:

var poolData = {
    UserPoolId: url.searchParams.get("user_pool_id"),  // Your user pool id here
    ClientId: url.searchParams.get("client_id")  // Your client id here
};

var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
var userData = {
    Username: url.searchParams.get("user_name"), //'sched',
    Pool: userPool
};

var s3;
userData.Pool.client.endpoint="https://custom_domain_name.com/"
var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.setAuthenticationFlowType('CUSTOM_AUTH');
cognitoUser.authenticateUser(authenticationDetails, {
    onSuccess: function (result) {

        var accessToken = result.getAccessToken().getJwtToken();
        var idtoken = result.getIdToken().getJwtToken();
        //refreshToken Handling

        AWS.config.region = bucketRegion;
        var loginEndPoint = 'custom_domain_name.com/'+ url.searchParams.get("user_pool_id");
        var logins={};
        logins[loginEndPoint]=idtoken;


        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
            IdentityPoolId: IdentityPoolId, // your identity pool id here
            Logins:  logins
        });
              AWS.config.credentials.get(function (err) {
            if (err) {
                console.log(err);
            } else {

            }
        });

    },

    onFailure: function (err) {

        console.log('ops! something went wrong');
        console.log(err.message || JSON.stringify(err));
    }

});

но я продолжаю получать сообщение об ошибке на терминале:

Access to fetch at 'custom_domain_name.com' from origin has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

Может кто-нибудь помочь мне понять, что именно будет решением для этого, или указать на root причина?

Настройки UserPool в s3 cognito

...