gpt4 book ai didi

amazon-web-services - AWS Cognito InitiateAuth 通过 Lambda 函数导致错误

转载 作者:IT王子 更新时间:2023-10-29 02:19:34 25 4
gpt4 key购买 nike

我正在 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- 认知 IDP:AdminDeleteUser- cognito-idp:InitiateAuth- cognito-idp:ChangePassword- cognito-idp:AdminRespondToAuthChallenge-认知IDP:AdminInitiateAuth- cognito-idp:ConfirmForgotPassword

我是不是漏掉了什么?

最佳答案

当我们创建一个新的 App 客户端时,默认情况下它有一个关联的 App 客户端密码。

我又创建了一个没有“Client Secret”的应用程序客户端。我使用了这个新的 App 客户端。

我修改了代码以使用 API AdminInitiateAuth,而不是 InitiateAuth

我能够成功登录。

这是有用的引用链接 - Amplify "Unable to verify secret hash for client"

关于amazon-web-services - AWS Cognito InitiateAuth 通过 Lambda 函数导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54965463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com