Есть ли способ в Symfony 3.4 использовать кодировщик паролей без сущности, которая реализует UserInterface
?
Подробности
Я хочу ха sh случайное строковое значение в Symfony 3.4. Я всегда могу использовать password_hash
, но я пытаюсь сделать это Symfony и использовать преимущества фреймворка. Вот где я застреваю:
Документация Symfony имеет пример, но он использует UserPasswordEncoder
, который предполагает, что у вас есть объект, реализующий UserInterface
для передачи в качестве первый аргумент encodePassword($user, $plainPassword)
.
В этом случае у меня нет пользовательской сущности, потому что я генерирую токен для ссылки электронной почты. У меня есть сущность, но я чувствую себя неправильно, если она реализует UserInterface
, когда это не пользователь.
Я покопался в коде для UserPasswordEncoder
и подумал, что могу просто внедрить PasswordEncoderInterface
, который имеет универсальный c encodePassword($plainPassword, $salt)
метод, но я получаю это исключение при попытке его автоматического подключения:
Cannot autowire service "SriBundle\Service\PubMatch\PublicationMatchLogService":
argument "$passwordEncoder" of method "__construct()" references interface
"Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface" but no such service exists.
It cannot be auto-registered because it is from a different root namespace.
Кажется, Symfony не имеет службы по умолчанию, которая реализует PasswordEncoder
и может быть автоматически подключенным Я что-то здесь упускаю, или Symfony предполагает, что вы хотите иметь только sh пароли для пользовательских сущностей и не поддерживает кодирование ха sh для случайного строкового значения без передачи в связанный пользователь?