Amazon Web Services (AWS) Cognito error «Токен не от поддерживаемого поставщика этого пула идентификаций». - PullRequest
3 голосов
/ 17 июня 2019

Я запускаю это приложение из GitHub , которое позволяет пользователю зарегистрироваться и войти в Cognito Client App. Я использую Eclipse IDE для корпоративных разработчиков Java Версия: 2019-03 (4.11.0), идентификатор сборки: 20190314-1200. Я гарантировал, что я поставил все необходимые полномочия точно. Я могу зарегистрироваться, используя форму и консоль.

Когда я пытаюсь войти в систему, в консоли появляется сообщение об ошибке: «Токен не от поддерживаемого поставщика этого пула идентификации». используя как форму, так и консоль.

Я пробовал ответы на другие сообщения в стеке переполнение похож на этот вопрос. Причина моей ошибки отличается от причин в других постах.

Когда я использую версию приложения в форме, оба вида консоли и код ниже.

Вот скриншот формы:

enter image description here

Вот то, что показывает консоль, без подробной информации об ошибке:

{ "суб": "52c99df9-f7ef-42b2-9127-9675ba4e2414", "email_verified" ложь "ИСС": "https://cognito -idp.us-east-1.amazonaws.com / мы-восток-1_d0Y5gS66r" "phone_number_verified": правда, "Cognito: имя пользователя": "*****", "ауд": "4feegfdtp0dbt9atu56vruuv37", "event_id":" c77eff2c-01ad-42c3-8dac -a4849dc297c6" , "token_use": "идентификатор", "auth_time": 1560793958, "phone_number": "+ ***********", "ехр": 1560797558, "IAT": 1560793958,» электронная почта ":" ******** "}

Пользователь аутентифицируется: eyJraWQiOiJ4K1piekppSWN4RjZtbDVENjVSQXAySlBOQ0ROK2FmU3Fpc1BnSDE0c3ZvPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI1MmM5OWRmOS1mN2VmLTQyYjItOTEyNy05Njc1YmE0ZTI0MTQiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX2QwWTVnUzY2ciIsInBob25lX251bWJlcl92ZXJpZmllZCI6dHJ1ZSwiY29nbml0bzp1c2VybmFtZSI6InlhaG9vMDMiLCJhdWQiOiI0ZmVlZ2ZkdHAwZGJ0OWF0dTU2dnJ1dXYzNyIsImV2ZW50X2lkIjoiYzc3ZWZmMmMtMDFhZC00MmMzLThkYWMtYTQ4NDlkYzI5N2M2IiwidG9rZW5fdXNlIjoiaWQiLCJhdXRoX3RpbWUiOjE1NjA3OTM5NTgsInBob25lX251bWJlciI6IisxOTAzMjc2MTA0NiIsImV4cCI6MTU2MDc5NzU1OCwiaWF0IjoxNTYwNzkzOTU4LCJlbWFpbCI6Im9sZS5nbm9sYXVtQGdtYWlsLmNvbSJ9.BqyjJJgOZcQP7yUDd3wDrrK4pNRs8BE8RvBzl2vIz248f3rgQ4fn1cd54azjtlplGkthbB0zA9xcd7gPJzqffd-3wS9RFevxkT4LfSiGF1UXGpIqHH_GhbMHA4dG6nKqBOmInvcn9gR1oblBszdbvUxE1poyP3MLvIi64vRvYm1P2kdikWlXl7qKH_RFivEmRMbpd4xpXH6Gjv3hxE6w2vn4O3oZkwz5eY-djUfbwy_uhItycPB3yZLGS8LU55vkrvyJrzHQLDu1U5AvkHGLZv1H7GveHm36RRwSGH5ZkCrtfkolRBN7wkqq9pG hh3jccqHN6Ml5L3XmH3irFNikfw

поставщик = cognito-idp.us-east-1.amazonaws.com/us-east-1_d0Y5gS66r

Исключение в потоке "Поток приложений JavaFX"

com.amazonaws.services.cognitoidentity.model.NotAuthorizedException:

Токен не от поддерживаемого поставщика этого пула идентификации.

(Сервис: AmazonCognitoIdentity; Код состояния: 400; Код ошибки:

NotAuthorizedException; Идентификатор запроса:

b295ece8-9128-11e9-bb89-5d1e066e532b)

Вот код кнопки входа, которую я нажимаю, чтобы войти:

signin_button = new Button("Sign-In");
Label auth_message = new Label("");
signin_button.setOnAction((ActionEvent e) -> {
    String result = helper.ValidateUser(Username.getText(), Password.getText());
    if (result != null) {
        System.out.println("User is authenticated:" + result);
        auth_message.setText("User is authenticated");
        JSONObject payload = CognitoJWTParser.getPayload(result);
        String provider = payload.get("iss").toString().replace("https://", "");

        // Daniel Brower
        System.out.println("provider = " + provider);

        Credentials credentails = helper.GetCredentials(provider, result);


        ShowUserBuckets(credentails);
    } else {
        System.out.println("Username/password is invalid");
        auth_message.setText("Username/password is invalid");
    }

});

Строка кода с моим именем в комментарии выше - это код, который я ввел в себя.

У меня проблемы с выяснением, от какого провайдера этот токен.

Вот скриншот моей страницы провайдеров идентификации в Cognito Console. Я не выбрал ни одного. Ничто не говорит о том, что есть провайдер идентификации.

enter image description here

В сообщении об ошибке написано "Сервис: AmazonCognitoIdentity". Я думаю, что провайдер будет Cognito Identity Provider. Я даже нашел классы с этим именем.

1 Ответ

0 голосов
/ 28 июня 2019

По какой-то причине у меня неправильное значение для Cognito Console-> Federated Identities-> Изменить пул идентификаторов-> Cognito-> Идентификатор клиента приложения

Я не знаю, как я ошибся.Я изменил его, чтобы он соответствовал корректному из пула удостоверений.

...