Symfony 4.2: как получить экземпляр кодировщика вне контроллера - PullRequest
1 голос
/ 13 мая 2019

Мне нужно проверить свой пароль в форме входа, поэтому Я хочу получить кодировщик в классе Authenticator (сделанный bin / console make: auth) в функции checkCredentials($credentials, UserInterface $user).

$ credentials ['password'] - это простой текст, а $ user-> getPassword () - это кодированный пароль.

Мой security.yaml:

encoders:
    App\Entity\User:
        algorithm: bcrypt
        cost: 12

Как получить экземпляр кодировщика?

1 Ответ

2 голосов
/ 13 мая 2019

Вы можете получить кодировщик на заводе-изготовителе, который имеет security.encoder_factory сервисный ID (или Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface интерфейс при использовании автопроводки).

После введения на заводе вы можете получить кодировщик для определенногопользовательский объект с:

use App\Entity\User;

...

$encoder = $encoderFactory->getEncoder(User:class);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...