Amazon Web Services(AWS)Cognito错误“令牌不是来自该身份池的受支持提供商。”

时间:2019-06-17 18:36:44

标签: java eclipse amazon-web-services aws-sdk amazon-cognito

我正在运行this app from GitHub,它允许用户注册并登录到Cognito客户端应用程序。我正在使用Eclipse IDE for Enterprise Java Developers版本:2019-03(4.11.0),构建ID:20190314-1200。我确保我准确地放置了所有必要的凭据。我可以使用表格和控制台进行注册。

当我尝试登录时,在控制台中出现错误,提示“令牌不是来自此身份池的受支持提供商”。同时使用表单和控制台。

我已经尝试过其他与堆栈类似的问题溢出的答案。我的错误原因与其他帖子中的原因不同。

当我使用应用程序的表单版本时,控制台视图和下面的代码都是

这是该表格的屏幕截图:

enter image description here

这是控制台显示的内容,没有错误的详细信息:

  

{“ 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”:“ ********”}

     

用户被认证:eyJraWQiOiJ4K1piekppSWN4RjZtbDVENjVSQXAySlBOQ0ROK2FmU3Fpc1BnSDE0c3ZvPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI1MmM5OWRmOS1mN2VmLTQyYjItOTEyNy05Njc1YmE0ZTI0MTQiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX2QwWTVnUzY2ciIsInBob25lX251bWJlcl92ZXJpZmllZCI6dHJ1ZSwiY29nbml0bzp1c2VybmFtZSI6InlhaG9vMDMiLCJhdWQiOiI0ZmVlZ2ZkdHAwZGJ0OWF0dTU2dnJ1dXYzNyIsImV2ZW50X2lkIjoiYzc3ZWZmMmMtMDFhZC00MmMzLThkYWMtYTQ4NDlkYzI5N2M2IiwidG9rZW5fdXNlIjoiaWQiLCJhdXRoX3RpbWUiOjE1NjA3OTM5NTgsInBob25lX251bWJlciI6IisxOTAzMjc2MTA0NiIsImV4cCI6MTU2MDc5NzU1OCwiaWF0IjoxNTYwNzkzOTU4LCJlbWFpbCI6Im9sZS5nbm9sYXVtQGdtYWlsLmNvbSJ9.BqyjJJgOZcQP7yUDd3wDrrK4pNRs8BE8RvBzl2vIz248f3rgQ4fn1cd54azjtlplGkthbB0zA9xcd7gPJzqffd-3wS9RFevxkT4LfSiGF1UXGpIqHH_GhbMHA4dG6nKqBOmInvcn9gR1oblBszdbvUxE1poyP3MLvIi64vRvYm1P2kdikWlXl7qKH_RFivEmRMbpd4xpXH6Gjv3hxE6w2vn4O3oZkwz5eY-djUfbwy_uhItycPB3yZLGS8LU55vkrvyJrzHQLDu1U5AvkHGLZv1H7GveHm36RRwSGH5ZkCrtfkolRBN7wkqq9pGhh3 jccqHN6Ml5L3XmH3irFNikfw

     

provider = cognito-idp.us-east-1.amazonaws.com/us-east-1_d0Y5gS66r

     

线程“ JavaFX Application Thread”中的异常

     

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

     

令牌不是来自此身份池的受支持提供商。

     

(服务:AmazonCognitoIdentity;状态代码:400;错误代码:

     

NotAuthorizedException;请求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控制台中我的身份提供者页面的屏幕截图。我还没有选择。没有什么说有身份提供者。

enter image description here

错误消息中显示“ Service:AmazonCognitoIdentity”。我认为提供商将是Cognito身份提供商。我什至找到了带有该名称的课程。

2 个答案:

答案 0 :(得分:4)

如果池中缺少联合身份验证配置,则会发生此问题。

Open Federated Identities => Authentication providers

在“认知”部分更改值,如下所示

User Pool ID
ex: test:us-east-1_Ab129f000
App client id
ex: test:7lhlkkfbfb4q5kpp90urf000

那应该可以解决您的问题

答案 1 :(得分:0)

出于某种原因,我对Cognito控制台->联合身份->编辑身份池-> Cognito->应用客户端ID的值有误

我不知道我怎么弄错了。我更改了它以匹配正确的身份池之一。