Аутентифицировать FrontendUser через вызов API PHP из Extbase - PullRequest
0 голосов
/ 31 октября 2019

Прежде всего, я использую 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 (\TYPO3\CMS\Saltedpasswords\Utility\SaltedPasswordsUtility::isUsageEnabled('FE')) {
        $objSalt = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getSaltingInstance($saltedPassword);
        if (is_object($objSalt)) {
                $success = $objSalt->checkPassword($password, $saltedPassword);
        }
}

Во время отладки этого фрагмента кода я узнал пароль, отправленный пользователем с помощью запроса, который шифруется с помощью данного алгоритма соли, который изменяется каждый раз. раз я повторю этот запрос. Я не уверен, как получить правильную аутентификацию, если пароль постоянно меняется.

Объект $objSalt содержит правильный метод хеширования ($pbkdf2-sha256$25000), пароль, хранящийся в базе данных, начинается с того жепрефикс, но фактическая полезная нагрузка отличается.

Так в чем же заключается проблема или что я пропускаю в приведенном выше коде для завершения аутентификации?

Спасибо за вашу помощь

BR,

Martin

1 Ответ

0 голосов
/ 31 октября 2019

пароль, отправленный пользователем через Запрос, который шифруется с помощью данного алгоритма Соли, меняется каждый раз, когда я повторяю этот запрос

Да, потому что соль меняется каждый раз.

Вы должны получить экземпляр засолки с помощью:

$instance = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getSaltingInstance($user['password']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...