Я использую DynamoDB для своего приложения, поэтому доктрина ORM не подходит для меня, когда дело доходит до аутентификации.
Я создал базового пользовательского провайдера, и он отлично работает при использовании хэша sha1, однако я полностью застрял / не понимаю, как заставить его работать с солью.
К вашему сведению: мой код основан на этом руководстве из руководства
Код:
Однажды «новый пользователь»Форма была отправлена, захватывает необработанные данные и выполняет следующие действия для сохранения в БД - это прекрасно работает:
$salt = '79fdshjh408hjhgd87r5438ujl';
$password = base64_encode(sha1($rawPassword.'{'.$salt.'}'));
При аутентификации у меня есть «userProvider», который запрашивает информацию о пользователях на основе имени пользователя изБД - это тоже нормально работает, и мне возвращаются все детали
//WebserviceUserProvider.php
$username = $userData['userName'];
$password = $userData['password'];
$roles[0] = 'ROLE_ADMIN';
$salt = '79fdshjh408hjhgd87r5438ujl';
return new WebserviceUser($username, $password, $salt, $roles);
файл WebserviceUser является прямой копией файла в документах:
security.yml
security:
encoders:
HvH\SecurityBundle\Security\WebserviceUser:
algorithm: sha1
iterations: 1
encode_as_base64: true
Если бы кто-нибудь мог указать мне правильное направление, это было бы очень ценно.
Спасибо