Забудьте пароль работает нормально, но при смене пароля ошибка: невозможно прочитать свойство 'значение' из неопределенного. Значение пароля не может прочитать - PullRequest
0 голосов
/ 03 апреля 2020

Изменить пароль.ts

changePw(email: HTMLInputElement, contactNo: HTMLInputElement, username: HTMLInputElement, password: HTMLInputElement) {
  console.log("changepasswordhere");
  const user = {
    password: password.value,
    attributes: {
      email: email.value
    }
  }
  console.log(user)

  Auth.currentAuthenticatedUser()
    .then(user => {
      console.log("data " + user);
      this.toVerifyEmail = true;
    })
    .catch(err => console.log(err));
  // console.log(user)
}

Изменить пароль. html

<label for="inputEmail" class="sr-only">Username</label>
<!-- <input type="text" required (keypress)="numberOnly($event)" id="confirmationcode" class="form-control" placeholder="Confirmation Code"  [(ngModel)]="confirmationcode" name="confirmationform" required autofocus> -->
<input
  type="number"
  class="form-control"
  id="exampleInputverifycode1"
  aria-describedby="verifyCodeHelp"
  placeholder="Enter the code"
  #verifycode
/>
<input
  type="password"
  id="inputPassword"
  class="form-control"
  placeholder="New Password"
  [(ngModel)]="newpassword"
  name="loginform"
  required
  autofocus
/>
<input
  type="password"
  id="inputPassword"
  class="form-control"
  placeholder="Confirm New Password"
  [(ngModel)]="confirmpassword"
  name="loginform"
  required
  autofocus
/>
<div class="alert alert-danger" *ngIf="message" role="alert">
  {{message}}
</div>

<button
  class="btn btn-lg btn-primary btn-block"
  (click)="changePw(email,password,username,contactNo)"
>
  Submit
</button>

В поле забыть пароль введите пользователя name и cognito проверит существование имени name, затем отправит OTP. После этого при смене пароля пользователь должен ввести OTP для проверки, нового и подтверждения нового пароля. Поскольку я очень новичок в aws -amplify, плз может кто-нибудь дать мне совет здесь.

1 Ответ

0 голосов
/ 03 апреля 2020

В вашем HTML вы связываете два поля ввода с помощью [(ngModel]) с переменными пароля:

<input
  type="password"
  id="inputPassword"
  class="form-control"
  placeholder="New Password"
  [(ngModel)]="newpassword"
  name="loginform"
  required
  autofocus
/>
<input
  type="password"
  id="inputPassword"
  class="form-control"
  placeholder="Confirm New Password"
  [(ngModel)]="confirmpassword"
  name="loginform"
  required
  autofocus
/>

В вашем файле для ввода текста у вас должно быть две переменные: newpassword и Подтверждение пароля. это то, с чем будет взаимодействовать ngModel, чтобы обновлять их до даты, которую пользователь вводил в поле ввода.

Наконец, если у вас уже есть эти два в вашей машинописи, вы можете использовать их в своей функции changePw, например: Итак:

changePw(email: HTMLInputElement, contactNo: HTMLInputElement, username: HTMLInputElement, password: HTMLInputElement) {
  console.log("changepasswordhere");
  const user = {
    // edited here: use your already existing variable
    password: newpassword,
    attributes: {
      email: email.value
    }
  }
  console.log(user)

  Auth.currentAuthenticatedUser()
    .then(user => {
      console.log("data " + user);
      this.toVerifyEmail = true;
    })
    .catch(err => console.log(err));
  // console.log(user)
}

Вы хотели бы проверить, равны ли новый пароль и пароль подтверждения, но это один из способов, которыми вы могли бы go.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...