public function getResetPassForm($email) {
    $timestamp = $this->session->get('pass_reset_timeout');
    $hash = $this->session->get('pass_reset_hash');

    // As soon as the session variables are used they are removed to prevent the
    // hash and timestamp from being leaked unexpectedly. This could occur if
    // the user does not click on the log in button on the form.
    $this->session->remove('pass_reset_timeout');
    $this->session->remove('pass_reset_hash');
    if (!$hash || !$timestamp) {
      throw new AccessDeniedHttpException();
    }

    // Time out, in seconds, until login URL expires.
    $timeout = $this->config('user.settings')->get('password_reset_timeout');
    $expiration_date = $this->dateFormatter->format($timestamp + $timeout);

    return $this->formBuilder()->getForm(CommerceUserPasswordResetForm::class, $email, $expiration_date, $timestamp, $hash);
  }