Я запускаю это приложение из GitHub , которое позволяет пользователю зарегистрироваться и войти в Cognito Client App. Я использую Eclipse IDE для корпоративных разработчиков Java Версия: 2019-03 (4.11.0), идентификатор сборки: 20190314-1200. Я гарантировал, что я поставил все необходимые полномочия точно. Я могу зарегистрироваться, используя форму и консоль.
Когда я пытаюсь войти в систему, в консоли появляется сообщение об ошибке: «Токен не от поддерживаемого поставщика этого пула идентификации». используя как форму, так и консоль.
Я пробовал ответы на другие сообщения в стеке переполнение похож на этот вопрос. Причина моей ошибки отличается от причин в других постах.
Когда я использую версию приложения в форме, оба вида консоли и код ниже.
Вот скриншот формы:
Вот то, что показывает консоль, без подробной информации об ошибке:
{ "суб": "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. Я не выбрал ни одного. Ничто не говорит о том, что есть провайдер идентификации.
В сообщении об ошибке написано "Сервис: AmazonCognitoIdentity". Я думаю, что провайдер будет Cognito Identity Provider. Я даже нашел классы с этим именем.