亚马逊网络服务 (AWS) 检测到错误 "Token is not from a supported provider of this identity pool."
Amazon Web Services (AWS) Cognito error "Token is not from a supported provider of this identity pool."
我是 运行 this app from GitHub,它允许用户注册并登录 Cognito 客户端应用程序。我正在使用 Eclipse IDE for Enterprise Java 开发人员版本:2019-03 (4.11.0),内部版本号:20190314-1200。我已确保我准确地输入了所有必要的凭据。我可以使用表单和控制台进行注册。
当我尝试登录时,我在控制台中收到一条错误消息,显示 "Token is not from a supported provider of this identity pool." 同时使用表单和控制台。
我已经在 stackoverflow 的其他帖子上尝试过类似这个问题的答案。我的错误原因与其他帖子中的原因不同。
控制台视图和下面的代码都是我使用应用程序的表单版本时的。
这是表格的屏幕截图:
这是控制台显示的内容,没有错误的详细信息:
{"sub":"52c99df9-f7ef-42b2-9127-9675ba4e2414","email_verified":false,"iss":"https://cognito-idp.us-east-1.amazonaws.com/us-east-1_d0Y5gS66r","phone_number_verified":true,"cognito:username":"*****","aud":"4feegfdtp0dbt9atu56vruuv37","event_id":"c77eff2c-01ad-42c3-8dac-a4849dc297c6","token_use":"id","auth_time":1560793958,"phone_number":"+***********","exp":1560797558,"iat":1560793958,"email":"********"}
User is authenticated:eyJraWQiOiJ4K1piekppSWN4RjZtbDVENjVSQXAySlBOQ0ROK2FmU3Fpc1BnSDE0c3ZvPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI1MmM5OWRmOS1mN2VmLTQyYjItOTEyNy05Njc1YmE0ZTI0MTQiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX2QwWTVnUzY2ciIsInBob25lX251bWJlcl92ZXJpZmllZCI6dHJ1ZSwiY29nbml0bzp1c2VybmFtZSI6InlhaG9vMDMiLCJhdWQiOiI0ZmVlZ2ZkdHAwZGJ0OWF0dTU2dnJ1dXYzNyIsImV2ZW50X2lkIjoiYzc3ZWZmMmMtMDFhZC00MmMzLThkYWMtYTQ4NDlkYzI5N2M2IiwidG9rZW5fdXNlIjoiaWQiLCJhdXRoX3RpbWUiOjE1NjA3OTM5NTgsInBob25lX251bWJlciI6IisxOTAzMjc2MTA0NiIsImV4cCI6MTU2MDc5NzU1OCwiaWF0IjoxNTYwNzkzOTU4LCJlbWFpbCI6Im9sZS5nbm9sYXVtQGdtYWlsLmNvbSJ9.BqyjJJgOZcQP7yUDd3wDrrK4pNRs8BE8RvBzl2vIz248f3rgQ4fn1cd54azjtlplGkthbB0zA9xcd7gPJzqffd-3wS9RFevxkT4LfSiGF1UXGpIqHH_GhbMHA4dG6nKqBOmInvcn9gR1oblBszdbvUxE1poyP3MLvIi64vRvYm1P2kdikWlXl7qKH_RFivEmRMbpd4xpXH6Gjv3hxE6w2vn4O3oZkwz5eY-djUfbwy_uhItycPB3yZLGS8LU55vkrvyJrzHQLDu1U5AvkHGLZv1H7GveHm36RRwSGH5ZkCrtfkolRBN7wkqq9pGhh3jccqHN6Ml5L3XmH3irFNikfw
provider = cognito-idp.us-east-1.amazonaws.com/us-east-1_d0Y5gS66r
Exception in thread "JavaFX Application Thread"
com.amazonaws.services.cognitoidentity.model.NotAuthorizedException:
Token is not from a supported provider of this identity pool.
(Service: AmazonCognitoIdentity; Status Code: 400; Error Code:
NotAuthorizedException; Request ID:
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 控制台中的身份提供者页面的屏幕截图。我没有选择任何。没有说有身份提供者。
错误消息中说 "Service: AmazonCognitoIdentity"。我认为提供者将是 Cognito 身份提供者。我什至发现 类 里面有那个名字。
出于某种原因,我在 Cognito 控制台->联合身份->编辑身份池->Cognito->应用程序客户端 ID 中输入了错误的值
我不知道我怎么弄错了。我更改了它以匹配正确的身份池之一。
如果您的联合身份配置在您的池中丢失,就会出现此问题。
Open Federated Identities => Authentication providers
在 Cognito 部分更改值如下
User Pool ID
ex: test:us-east-1_Ab129f000
App client id
ex: test:7lhlkkfbfb4q5kpp90urf000
这应该可以解决您的问题
我是 运行 this app from GitHub,它允许用户注册并登录 Cognito 客户端应用程序。我正在使用 Eclipse IDE for Enterprise Java 开发人员版本:2019-03 (4.11.0),内部版本号:20190314-1200。我已确保我准确地输入了所有必要的凭据。我可以使用表单和控制台进行注册。
当我尝试登录时,我在控制台中收到一条错误消息,显示 "Token is not from a supported provider of this identity pool." 同时使用表单和控制台。
我已经在 stackoverflow 的其他帖子上尝试过类似这个问题的答案。我的错误原因与其他帖子中的原因不同。
控制台视图和下面的代码都是我使用应用程序的表单版本时的。
这是表格的屏幕截图:
这是控制台显示的内容,没有错误的详细信息:
{"sub":"52c99df9-f7ef-42b2-9127-9675ba4e2414","email_verified":false,"iss":"https://cognito-idp.us-east-1.amazonaws.com/us-east-1_d0Y5gS66r","phone_number_verified":true,"cognito:username":"*****","aud":"4feegfdtp0dbt9atu56vruuv37","event_id":"c77eff2c-01ad-42c3-8dac-a4849dc297c6","token_use":"id","auth_time":1560793958,"phone_number":"+***********","exp":1560797558,"iat":1560793958,"email":"********"}
User is authenticated:eyJraWQiOiJ4K1piekppSWN4RjZtbDVENjVSQXAySlBOQ0ROK2FmU3Fpc1BnSDE0c3ZvPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI1MmM5OWRmOS1mN2VmLTQyYjItOTEyNy05Njc1YmE0ZTI0MTQiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX2QwWTVnUzY2ciIsInBob25lX251bWJlcl92ZXJpZmllZCI6dHJ1ZSwiY29nbml0bzp1c2VybmFtZSI6InlhaG9vMDMiLCJhdWQiOiI0ZmVlZ2ZkdHAwZGJ0OWF0dTU2dnJ1dXYzNyIsImV2ZW50X2lkIjoiYzc3ZWZmMmMtMDFhZC00MmMzLThkYWMtYTQ4NDlkYzI5N2M2IiwidG9rZW5fdXNlIjoiaWQiLCJhdXRoX3RpbWUiOjE1NjA3OTM5NTgsInBob25lX251bWJlciI6IisxOTAzMjc2MTA0NiIsImV4cCI6MTU2MDc5NzU1OCwiaWF0IjoxNTYwNzkzOTU4LCJlbWFpbCI6Im9sZS5nbm9sYXVtQGdtYWlsLmNvbSJ9.BqyjJJgOZcQP7yUDd3wDrrK4pNRs8BE8RvBzl2vIz248f3rgQ4fn1cd54azjtlplGkthbB0zA9xcd7gPJzqffd-3wS9RFevxkT4LfSiGF1UXGpIqHH_GhbMHA4dG6nKqBOmInvcn9gR1oblBszdbvUxE1poyP3MLvIi64vRvYm1P2kdikWlXl7qKH_RFivEmRMbpd4xpXH6Gjv3hxE6w2vn4O3oZkwz5eY-djUfbwy_uhItycPB3yZLGS8LU55vkrvyJrzHQLDu1U5AvkHGLZv1H7GveHm36RRwSGH5ZkCrtfkolRBN7wkqq9pGhh3jccqHN6Ml5L3XmH3irFNikfw
provider = cognito-idp.us-east-1.amazonaws.com/us-east-1_d0Y5gS66r
Exception in thread "JavaFX Application Thread"
com.amazonaws.services.cognitoidentity.model.NotAuthorizedException:
Token is not from a supported provider of this identity pool.
(Service: AmazonCognitoIdentity; Status Code: 400; Error Code:
NotAuthorizedException; Request ID:
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 控制台中的身份提供者页面的屏幕截图。我没有选择任何。没有说有身份提供者。
错误消息中说 "Service: AmazonCognitoIdentity"。我认为提供者将是 Cognito 身份提供者。我什至发现 类 里面有那个名字。
出于某种原因,我在 Cognito 控制台->联合身份->编辑身份池->Cognito->应用程序客户端 ID 中输入了错误的值
我不知道我怎么弄错了。我更改了它以匹配正确的身份池之一。
如果您的联合身份配置在您的池中丢失,就会出现此问题。
Open Federated Identities => Authentication providers
在 Cognito 部分更改值如下
User Pool ID
ex: test:us-east-1_Ab129f000
App client id
ex: test:7lhlkkfbfb4q5kpp90urf000
这应该可以解决您的问题