0

我正在从版本 7 到 10 进行typo3 升级。但被 fe 用户登录部分卡住了。阅读文档,因为加盐密码将自动转换为 argon2i 哈希值。这适用于正确的用户。我有一个自定义扩展,我将在其中检查 plaun 文本密码是否与数据库中的密码哈希值相同。我的代码是

if ($settings['feUserPid'] == $user['pid']) {
    $mode = 'FE';
    $success = GeneralUtility::makeInstance(PasswordHashFactory::class)
                ->getDefaultHashInstance($mode)
                ->checkPassword($request->getArgument('password'), $user['password']);
}

即使密码正确,$success 的值也始终为 FALSE。数据库中的密码不是 argon2i 哈希值。我该如何解决这个问题?有没有人遇到过这样的问题?

4

1 回答 1

1

对我来说是前一阵子,但我用过

$hashInstance = GeneralUtility::makeInstance(PasswordHashFactory::class)->getDefaultHashInstance('FE');
$hashedPassword = $hashInstance->getHashedPassword($x);

你的方法应该有效。您是否在安装工具中验证了 [FE][passwordHashing][className] 的设置?

于 2021-08-12T09:11:46.223 回答