小编Dyl*_*ell的帖子

AWS Cognito completeNewPasswordChallenge 调用 onFailure 方法,但用户在 AWS 控制台中得到确认

我在 React 应用程序中使用 AWS Cognito Javascript SDK。我有一个由管理员在 AWS 控制台中创建的用户,当用户第一次登录时,他们必须重置密码。我完成了 newPasswordRequired 流程,当我使用参数调用 completeNewPasswordChallenge 函数时,将运行 onFailure 回调。当我记录错误时,{code: "UnknownError", message: "Unknown error"}. 但是,当我检查 AWS 控制台时,用户池中的用户从 FORCE_CHANGE_PASSWORD 更改为 CONFIRMED。

我的代码是:

class LoginScreenContainer extends Component {
  constructor(props) {
    super(props);
    this.state = {
      isInvalidForm: null,
      isFirstLogin: false,
      user: null,
      userAttr: null
    }
    this.onFormSubmission = this.onFormSubmission.bind(this);
    this.updatePassword = this.updatePassword.bind(this);
  }

  onFormSubmission = (username, password) => {
    const poolData = {
      UserPoolId : AWSConfig.cognito.USER_POOL_ID,
      ClientId : AWSConfig.cognito.APP_CLIENT_ID
    }

    const userPool = new CognitoUserPool(poolData);
    const userData = …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services reactjs amazon-cognito

6
推荐指数
1
解决办法
5952
查看次数

AWS Cognito / React.js newPasswordRequired挑战

我正在为我在React中内置的Web应用程序创建登录流程,并且正在使用AWS Cognito进行用户管理。我正在处理登录流程,并且有一个用例,其中通过AWS控制台创建了一个用户,并向该用户提供了一个临时密码。当用户首次登录我的应用程序时,AWS Cognito将返回newPasswordRequired质询,并且用户被迫更改密码。

我正在使用amazon-cognito-identity-jsAPI来验证用户身份。可以在此处找到该文档。我已经按照newPasswordRequireddocs的指示进行了回调函数的设置,但是我正在努力寻找在newPasswordRequired函数中使用React从用户那里收集新密码的最佳方法。我最初prompt()在该函数中使用了输入,但是我希望该应用程序进入新页面,用户可以在其中输入新密码,确认新密码并登录到该应用程序。该新页面应该能够调用cognitoUser.completeNewPasswordChallenge()更新新密码所需的。请帮忙!这是我的代码如下:

onFormSubmission = (username, password) => {
    const poolData = {
      UserPoolId : AWSConfig.cognito.USER_POOL_ID,
      ClientId : AWSConfig.cognito.APP_CLIENT_ID
    }
    const userPool = new CognitoUserPool(poolData);
    const userData = {
      Username: username,
      Pool: userPool
    }
    const authenticationData = {
        Username : username,
        Password : password
    }
    const authenticationDetails = new AuthenticationDetails(authenticationData);

    const cognitoUser = new CognitoUser(userData);

    cognitoUser.authenticateUser(authenticationDetails, {
      onSuccess: function (result) {
          console.log('access token + ' + result.getAccessToken().getJwtToken()); …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services reactjs react-router aws-cognito

4
推荐指数
1
解决办法
583
查看次数