AWS Cognito无法验证客户端的秘密哈希值

Jie*_*eng 6 javascript amazon-web-services amazon-cognito aws-sdk

当我尝试authenticateUser,我得到

Error: Unable to verify secret hash for client <CLIENT_ID_HERE>

怎么了?我的代码如下:

import {
  Config,
  CognitoIdentityCredentials
} from "aws-sdk"
import {
  CognitoUserPool,
  CognitoUserAttribute,
  AuthenticationDetails,
  CognitoUser
} from "amazon-cognito-identity-js"

Config.region = "ap-northeast-2"

var userpool = new CognitoUserPool({
  UserPoolId: "ap-northeast-2_QosOiWMkd",
  ClientId: "1bd6s9mv98bo2lucen2vesbqls"
})

var userData = {
  Username: "jiewmeng@gmail.com",
  Pool: userpool
}

var authData = new AuthenticationDetails({
  Username: "jiewmeng@gmail.com",
  Password: "P@$$w0rd"
})

var cognitoUser = new CognitoUser(userData)
cognitoUser.authenticateUser(authData, {
  onSuccess: function (result) {
    console.log("authenticated with", result)
  },
  onFailure: function (err) {
    console.error(err)
  }
})
Run Code Online (Sandbox Code Playgroud)

在AWS上,客户端密钥已被禁用

在此输入图像描述

Vic*_*ari 12

适用于JavaScript的Amazon Cognito Identity SDK不支持具有客户端密钥的应用程序.这在SDK文档中说明:

创建应用程序时,必须取消选中生成客户端密码框,因为JavaScript SDK不支持具有客户端密钥的应用程序.

看起来您将不得不重新配置您的应用程序.