AWS Cognito 托管 UI 和预构建 UI 返回的访问令牌不同

问题描述 投票:0回答:0

我使用 AWS Amplify 和 Cognito 用户池构建了 Angular 应用程序。我能够成功登录并访问我的主页。但是,当我检查访问令牌时(见图 1) enter image description here

  1. 放大预建 UI
    当我尝试使用此访问令牌通过 API 网关验证我的 api 时,出现未经授权的错误。我在 API 网关中添加了正确的 Cognito 用户池 enter image description here

  2. 托管用户界面 URL 当我使用以下 url 访问托管 UI 时

https://xxxxxxxxx.auth.us-east-1.amazoncognito.com/login?&client_id=&response_type=token&scope=aws.cognito.signin.user.admin+email+openid+phone+profile&redirect_uri=http% 3A%2F%2Flocalhost%3A4200%2Fadmin%2Fhome

enter image description here

我登录成功了

http://localhost:4200/admin/home#id_token=&access_token=&expires_in=3600&token_type=Bearer

使用 ACCES_TOKEN 我可以验证 API 网关。

Cognito 用户池由命令自动创建:amplify add auth。

我在谷歌上搜索,发现我必须添加以下授权类型并连接范围

enter image description here

但是,我仍然无法弄清楚如何通过预建 UT 获得与托管 UI 相同的访问令牌

@Ankush - 根据你的建议,我更新了授权配置。这是我的 aws 身份验证配置

const awsmobile = {
    "aws_project_region": "us-east-1",
    "aws_cognito_identity_pool_id": "us-east-1:XXXXXXXXXXXXXXXXXXXXXXXxXXXx",
    "aws_cognito_region": "us-east-1",
    "aws_user_pools_id": "us-east-1_XXXXXX",
    "aws_user_pools_web_client_id": "48XxXxxxxxxxxxxxxxxxd",
    "oauth": {
        "domain": "xxxxxxxxxxxxxxxxxx-dev.auth.us-east-1.amazoncognito.com",
        "scope": [
            "phone",
            "email",
            "openid",
            "profile",
            "aws.cognito.signin.user.admin"
        ],
        "redirectSignIn": "http://localhost:4200/admin/home/",
        "redirectSignOut": "http://localhost:4200/",
        "responseType": "token"
    },
    "federationTarget": "COGNITO_USER_POOLS",
    "aws_cognito_username_attributes": [],
    "aws_cognito_social_providers": [],
    "aws_cognito_signup_attributes": [
        "EMAIL"
    ],
    "aws_cognito_mfa_configuration": "OFF",
    "aws_cognito_mfa_types": [
        "SMS"
    ],
    "aws_cognito_password_protection_settings": {
        "passwordPolicyMinLength": 8,
        "passwordPolicyCharacters": []
    },
    "aws_cognito_verification_mechanisms": [
        "EMAIL"
    ]
};

更新 oauth 后生成的 URL(见屏幕截图),我正在获取托管 UI URL 并返回正确的 URL。但是当我通过 ng serve 运行我的应用程序(打开预构建的登录页面)时返回不同的访问令牌

angular amazon-web-services aws-api-gateway amazon-cognito aws-amplify
© www.soinside.com 2019 - 2024. All rights reserved.