AWS Cognito IntitiateAuth:缺少必需的参数用户名

AWS Cognito IntitiateAuth: Missing required parameter UserName

初始化对 AWS Cognito 的身份验证时,API 拒绝我的请求:

InvalidParameterException: Missing required parameter UserName
status code: 400,

这是请求的内容(是的,我试着把它到处都放了,但没有成功)。

params := &cognitoidentityprovider.InitiateAuthInput{
    AuthFlow: aws.String("USER_SRP_AUTH"),              // Required
    ClientId: aws.String("xxxxxxxxxxxxxxxx"), // Required
    AuthParameters: map[string]*string{
        "username":     aws.String("myUser"), // Required
        "UserName":     aws.String("myUser"), // Required
    },
    ClientMetadata: map[string]*string{
        "username":     aws.String("myUser"), // Required
        "UserName":     aws.String("myUser"), // Required
    },
}

请问您知道会出现什么问题吗? 考虑到文档 (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-dg-pdf.pdf),username 应该与 srpA 一起在 AuthParameters 中。问题是否可能来自 srpA?如果有,这是什么?好像是密码。

它应该在 AuthParameters 中,而不是 ClientMetadata。

我认为期望值是 USERNAME 和 SRP_A。

SRP_A 是安全远程密码协议定义的一个大整数。您是尝试执行 SRP 还是仅使用用户名和密码进行身份验证。对于 username/password 身份验证,您应该使用 AdminInitiateAuth 操作。