如何为AWS Cognito用户生成访问令牌?

问题描述 投票:7回答:3

我'使用Cognito用户池来保护我的API网关。现在我想使用邮递员向我的API发出请求,但我需要传递授权令牌,因为API是安全的。是否有AWS CLI命令或REST API来生成身份验证令牌(通过传递用户名/密码)?我搜索过文档,但找不到任何示例。谢谢你的帮助。

amazon-web-services aws-api-gateway amazon-cognito aws-cognito
3个回答
9
投票

您可以使用以下CLI命令执行此操作:

注册用户

aws cognito-idp sign-up --region {your-aws-region} --client-id {your-client-id} --username [email protected] --password password123

确认用户注册

aws cognito-idp admin-confirm-sign-up --region {your-aws-region} --user-pool-id {your-user-pool-id} --username [email protected]

认证(获得令牌)

aws cognito-idp admin-initiate-auth --region {your-aws-region} --cli-input-json file://auth.json

auth.json的位置是:

{
    "UserPoolId": "{your-user-pool-id}",
    "ClientId": "{your-client-id}",
    "AuthFlow": "ADMIN_NO_SRP_AUTH",
    "AuthParameters": {
        "USERNAME": "[email protected]",
        "PASSWORD": "password123"
    }
}

如果一切设置正确,您应该得到这样的响应:

{
    "AuthenticationResult": {
        "ExpiresIn": 3600,
        "IdToken": "{your-idtoken}",
        "RefreshToken": "{your-refresh-token}",
        "TokenType": "Bearer",
        "AccessToken": "{your-access-token}"
    },
    "ChallengeParameters": {}
}

1
投票

有一个AWS CLI命令可以生成Auth Tokens。你可以使用InitiateAuth CLI Command

注意:确保已完成与预期标记匹配的UserPool配置。


1
投票

使用以下命令生成auth令牌,根据您的cognito配置适当填写xxxx,

aws cognito-idp initiate-auth --auth-flow USER_PASSWORD_AUTH --client-id xxxx --auth-parameters USERNAME = xx @ xx.com,PASSWORD = xxxx

注意:您可以在适用的cognito用户池下使用任何一个用户名或密码。客户端可以在常规设置 - > app client下找到

设置aws cli时,不需要AccessKeyId和SecretAccessKey,因为它已经定义了。如果没有完成,请使用以下链接将其设置为第一个https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html

© www.soinside.com 2019 - 2024. All rights reserved.