如何为 AWS Cognito 用户生成访问令牌?
How to generate access token for an AWS Cognito user?
我正在使用 Cognito 用户池来保护我的 API 网关。现在我想使用邮递员向我的 API 发出请求,但我需要传入授权令牌,因为 API 是安全的。是否有任何 AWS CLI 命令或 REST API 来生成身份验证令牌(通过传递 username/password)?我搜索了文档但找不到任何示例。感谢您的帮助。
有一个 AWS CLI 命令可以生成授权令牌。您可以为此使用 InitiateAuth CLI Command。
注意:确保您已完成匹配预期令牌的 UserPool 配置。
您可以使用以下 CLI 命令执行此操作:
注册用户
aws cognito-idp sign-up --region {your-aws-region} --client-id {your-client-id} --username admin@example.com --password password123
确认用户注册
aws cognito-idp admin-confirm-sign-up --region {your-aws-region} --user-pool-id {your-user-pool-id} --username admin@example.com
验证(获取令牌)
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": "admin@example.com",
"PASSWORD": "password123"
}
}
如果一切设置正确,您应该会收到这样的回复:
{
"AuthenticationResult": {
"ExpiresIn": 3600,
"IdToken": "{your-idtoken}",
"RefreshToken": "{your-refresh-token}",
"TokenType": "Bearer",
"AccessToken": "{your-access-token}"
},
"ChallengeParameters": {}
}
使用以下命令生成身份验证令牌,根据您的 Cognito 配置适当填写 xxxx,
aws cognito-idp initiate-auth --auth-flow USER_PASSWORD_AUTH --client-id xxxx --auth-parameters USERNAME= xx@xx.com,密码=xxxx
注意:您可以在适用的 Cognito 用户池下使用任何一个用户名或密码。
客户端可以在通用设置下找到--> app client
不需要 AccessKeyId 和 SecretAccessKey,因为它们在设置 aws cli 时已经定义。如果未完成,请先使用以下 link 进行设置
https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
我正在使用 Cognito 用户池来保护我的 API 网关。现在我想使用邮递员向我的 API 发出请求,但我需要传入授权令牌,因为 API 是安全的。是否有任何 AWS CLI 命令或 REST API 来生成身份验证令牌(通过传递 username/password)?我搜索了文档但找不到任何示例。感谢您的帮助。
有一个 AWS CLI 命令可以生成授权令牌。您可以为此使用 InitiateAuth CLI Command。
注意:确保您已完成匹配预期令牌的 UserPool 配置。
您可以使用以下 CLI 命令执行此操作:
注册用户
aws cognito-idp sign-up --region {your-aws-region} --client-id {your-client-id} --username admin@example.com --password password123
确认用户注册
aws cognito-idp admin-confirm-sign-up --region {your-aws-region} --user-pool-id {your-user-pool-id} --username admin@example.com
验证(获取令牌)
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": "admin@example.com",
"PASSWORD": "password123"
}
}
如果一切设置正确,您应该会收到这样的回复:
{
"AuthenticationResult": {
"ExpiresIn": 3600,
"IdToken": "{your-idtoken}",
"RefreshToken": "{your-refresh-token}",
"TokenType": "Bearer",
"AccessToken": "{your-access-token}"
},
"ChallengeParameters": {}
}
使用以下命令生成身份验证令牌,根据您的 Cognito 配置适当填写 xxxx,
aws cognito-idp initiate-auth --auth-flow USER_PASSWORD_AUTH --client-id xxxx --auth-parameters USERNAME= xx@xx.com,密码=xxxx
注意:您可以在适用的 Cognito 用户池下使用任何一个用户名或密码。 客户端可以在通用设置下找到--> app client
不需要 AccessKeyId 和 SecretAccessKey,因为它们在设置 aws cli 时已经定义。如果未完成,请先使用以下 link 进行设置 https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html