Какая сущность в symfony security и Lexik JWT Bundle проверяет логин/пароль при входе?
сразу опишу задачу: необходимо написать свой сервис, который будет проверять логин пароль юзера(как в api/login_check при использовании Lexik JWT Bundle) и возвращать стандартный jwt токен.
Задача минимум - понять, как работает security и Lexik JWT, задача максимум, реализовать проверку логин/пароль своим классом и встроить в security.
Но я не могу понять, кто конкретно проверяет логин пароль в Lexik JWT Bundle. Пока удалось отследить маршрут до Symfony\Component\Security\Http\Authenticator\JsonLoginAuthenticator, метод authenticate, который возвращает Passport(внутри есть логин, пароль, и другие параметры из входящего json) и onAuthenticationSuccess, в котором уже сгенерирован jwt токен.
Отсюда следующие вопросы:
- Кто проверяет логин-пасс между authenticate и onAuthenticationSuccess в JsonLoginAuthenticator
- Как вообще стоит действовать, если нужна своя проверка логина и пароля. Пароль тут условно, допустим пароль нужно заменить на другое поле, аля код смс. Но речь не про двухфакторную авторизацию. И не проверку апи ключа на каждом запросе.
- если проверку логина и пароля можно проводить классом наследующим AbstractAuthenticator, то как настроить фаерволл?
Использую симфони 7