Я попытался создать поле пароля, используя функции 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'
)
),
если в конце я пропускаю «пароль», поле обычно сохраняется, но как только я его добавляю, поле пароля больше не обновляется / не сохраняется.
Вам не нужно добавлять 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);
}
Других решений пока нет …