TYPO3 7.6.x Создание зашифрованного MD5 поля пароля в TCA

Я попытался создать поле пароля, используя функции eval Typo3.

TYPO3 версия 7.6.9

Вот мой конфиг:

'password' => array(
'exclude' => 1,
'label' => 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xlf:tx_myext_domain_model_pin.password',
'config' => array(
'type' => 'input',
'size' => 50,
'eval' => 'nospace,required,md5,unique,password'
)
),

если в конце я пропускаю «пароль», поле обычно сохраняется, но как только я его добавляю, поле пароля больше не обновляется / не сохраняется.

0

Решение

Вам не нужно добавлять md5 и уникальный в качестве параметров eval. В 7.x пароли автоматически шифруются расширением системы saltedpasswords, и это безопаснее, чем md5. Пароли, как правило, не уникальны, поэтому я думаю, что они ошибочны, но на самом деле они также должны работать с уникальными.

        'password' => array(
'exclude' => 1,
'label' => 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xlf:tx_myext_domain_model_pin.password',
'config' => array(
'type' => 'input',
'size' => 50,
'eval' => 'nospace,required,password'
)
),

позже вы можете проверить пароль следующим образом:
$hash хэш пароля от вашей базы данных и $password пароль для игры, который вы проверяете

        if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('saltedpasswords') && \TYPO3\CMS\Saltedpasswords\Utility\SaltedPasswordsUtility::isUsageEnabled('FE')) {
$saltObject = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getSaltingInstance(NULL);
return $saltObject->checkPassword($password, $hash);
} elseif ($GLOBALS['TYPO3_CONF_VARS']['FE']['loginSecurityLevel'] == 'md5') {
return $password == md5($password);
} elseif ($GLOBALS['TYPO3_CONF_VARS']['FE']['loginSecurityLevel'] === 'sha1') {
return $password == sha1($password);
}
-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]