TYPO3使用SaltedPasswordsUtility验证用户失败

时间:2018-08-14 12:05:01

标签: login typo3

我想通过控制器中的REST-API对自定义的FrontendUser进行身份验证。我尝试使用this guide使用 SaltedPasswordsUtility 对密码进行哈希处理。

我从相同的密码获得每个请求不同的哈希值。我认为这是因为盐不一致。

如何将纯文本密码与数据库中的密码哈希进行比较,或者是否有其他完全相同的方式实现密码?

到目前为止,我的代码是:

  /**
  * action check
  *
  * @param string $username
  * @param string $password
  * @return string
  */
  public function checkAction(string $username, string $password)
  {
    $user = $this->userRepository->findOneByUsername($username);

    $saltedPassword = '';

    if (\TYPO3\CMS\Saltedpasswords\Utility\SaltedPasswordsUtility::isUsageEnabled('FE')) {
            $objSalt = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getSaltingInstance(NULL);
            if (is_object($objSalt)) {
                    $saltedPassword = $objSalt->getHashedPassword($password);
            }
    }

    echo $saltedPassword;
    echo "<br>";

    $saltedPassword = $user->getPassword();
    // keeps status if plain-text password matches given salted user password hash
    $success = FALSE;

    if (\TYPO3\CMS\Saltedpasswords\Utility\SaltedPasswordsUtility::isUsageEnabled('FE')) {
      $objSalt = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getSaltingInstance($saltedPassword);
      if (is_object($objSalt)) {
        $success = $objSalt->checkPassword($password, $saltedPassword);
      }
    }
    echo $saltedPassword;
    return "";
  }

1 个答案:

答案 0 :(得分:0)

代码正在唤醒。我搞砸了在后端为测试用户设置错误的密码。