AWS Cognito IntitiateAuth:缺少必需参数UserName

时间:2016-08-01 01:01:22

标签: amazon-web-services authentication aws-sdk amazon-cognito single-responsibility-principle

初始化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?如果是这样,这是什么?它看起来像是密码。

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

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

我认为预期的值是USERNAME和SRP_A。