我正在尝试使用AWS CLI确认Cognito用户(将其状态从 FORCE_CHANGE_PASSWORD 更改为 CONFIRMED )。我使用没有的App客户端和应用机密成功完成了此操作,但是我不知道如何在有一个客户端的App客户端中做到这一点。根据AWS CLI参考,在这里:
https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-initiate-auth.html
我应该可以通过传递App密码来做到这一点,就像这样:
(为格式化而分解,我将其输入为完整行)
aws cognito-idp admin-initiate-auth
--user-pool-id us-east-1_xxxxxxxx
--region=us-east-1
--client-id xxxxxxxxxxxxxxxxxxxxx
--auth-flow ADMIN_NO_SRP_AUTH
--auth-parameters
USERNAME=TestUser
PASSWORD='Test_Password'
SECRET_HASH=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
--profile AwsProfile
我从Web控制台上的 App客户机密字段中获取了机密值,并且我也启用了“启用用于基于服务器的身份验证的登录API(ADMIN_NO_SRP_AUTH)”。
但是,我一直收到以下答复:
An error occurred (NotAuthorizedException) when calling the AdminInitiateAuth operation: Unable to verify secret hash for client xxxxxxxxxxxxxxxxxxxxxxx
我可能做错了什么?
答案 0 :(得分:1)
按如下方式计算您的SECRET_HASH:
Base64(HMAC_SHA256(“客户端密钥”,“用户名” +“客户端ID”) )