AWS Amplify Auth / Cognito通话太多?

时间:2019-02-05 19:04:19

标签: javascript amazon-web-services amazon-cognito aws-amplify

当前使用Cognito Javascript SDK,当我要发送的用户名存在或不存在时,被警告我有点惊讶:

这是我正在使用的代码:

login(username, password) {
    const authenticationData = {
      Username : username,
      Password : password,
    };

    const authenticationDetails = new AuthenticationDetails(authenticationData);

    const userPool = new CognitoUserPool(this.poolData);
    const userData = {
      Username : username,
      Pool : userPool,
    };

    this.cognitoUser = new CognitoUser(userData);
    this.cognitoUser.authenticateUser(authenticationDetails, {
      onSuccess: function (result) {
        console.log(result);
      },
      newPasswordRequired: function(...) {

      },
      onFailure: function(err) {
        console.log(err);
      },
    });
  }

如果我使用错误的密码将username设置为mytest(现有用户),则会出现以下错误:

  

“ NotAuthorizedException”   用户名或密码错误。

没关系。但是,如果我将username设置为test12345(不存在用户),则会出现此错误:

  

“ UserNotFoundException”   用户不存在。

我认为告诉最终用户用户名是否存在并不安全。

我错了吗?我做错了吗?

我只想第一个例外来通知最终用户登录失败。

1 个答案:

答案 0 :(得分:0)

我花了一些时间才找到它,但是在用户池客户端设置中有一个选项防止用户存在错误(常规设置->应用程序客户端)。参见https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-managing-errors.html