我正在 Go 中编写一个 Lambda 函数来对用户进行身份验证,这是我想用于后续 API 调用的 AccessToken/IdToken。
当我从一个独立程序执行 Go 代码时,它起作用了,InitiateAuth 成功了。
当我尝试使用来自 lambda 函数的相同代码时,出现错误 NotAuthorizedException: Unable to verify secret hash for client ......
这是我正在使用的代码片段
func AuthenticateUser(userName string, passWord string) (*cognitoidentityprovider.InitiateAuthOutput, error) {
username := aws.String(userName)
password := aws.String(passWord)
clientID := aws.String(constants.COGNITO_APP_CLIENT_ID)
params := &cognitoidentityprovider.InitiateAuthInput{
AuthFlow: aws.String("USER_PASSWORD_AUTH"),
AuthParameters: map[string]*string{
"USERNAME": username,
"PASSWORD": password,
},
ClientId: clientID,
}
authResponse, authError := cognitoClient.InitiateAuth(params)
if authError != nil {
fmt.Println("Error = ", authError)
return nil, authError
}
fmt.Println(authResponse)
fmt.Println(*authResponse.Session)
return authResponse, nil
}
我已经为 lambda 用户提供了足够的权限 - cognito-idp:AdminCreateUser - cognito-idp:AdminDeleteUser - cognito-idp:InitiateAuth - cognito-idp:ChangePassword - cognito-idp:AdminRespondToAuthChallenge - cognito-idp:AdminInitiateAuth - cognito-idp:确认忘记密码
我在这里错过了什么吗?
达令说
相关分类