通过Extbase的PHP API调用验证FrontendUser



首先使用TYPO3版本8.7。

我目前面临的问题是对存储在给定页面上的FrontendUser(fe_user(进行身份验证(在本例中为pid 168(。

显然,我正在尝试使用移动应用程序发送的给定凭据对用户进行身份验证。我能够解析用户数据并执行身份验证:

// plain-text password
$password = 'XXX';
// salted user password hash
$saltedPassword = 'YYY';
// keeps status if plain-text password matches given salted user password hash
$success = FALSE;
if (TYPO3CMSSaltedpasswordsUtilitySaltedPasswordsUtility::isUsageEnabled('FE')) {
$objSalt = TYPO3CMSSaltedpasswordsSaltSaltFactory::getSaltingInstance($saltedPassword);
if (is_object($objSalt)) {
$success = $objSalt->checkPassword($password, $saltedPassword);
}
}

在调试这个代码片段时,我识别出了用户通过Request发送的密码,每次重试这个请求时,它都会使用给定的Salt算法进行加密。如果密码不断更改,我不知道如何获得正确的身份验证。

$objSalt对象包含正确的哈希方法($pbkdf2-sha256$25000(,数据库中存储的密码以相同的前缀开头,但实际负载不同。

那么,确切的问题是什么,或者我在上面的代码中缺少了什么来完成身份验证呢?

感谢您的帮助

BR,

Martin

用户通过请求发送的密码,每次我重试此请求时,都会使用给定的Salt算法进行加密

是的,因为盐每次都会改变。

您应该使用检索salting实例

$instance = TYPO3CMSSaltedpasswordsSaltSaltFactory::getSaltingInstance($user['password']);

相关内容

  • 没有找到相关文章

最新更新