Какая сущность в 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 токен.

Отсюда следующие вопросы:

  1. Кто проверяет логин-пасс между authenticate и onAuthenticationSuccess в JsonLoginAuthenticator
  2. Как вообще стоит действовать, если нужна своя проверка логина и пароля. Пароль тут условно, допустим пароль нужно заменить на другое поле, аля код смс. Но речь не про двухфакторную авторизацию. И не проверку апи ключа на каждом запросе.
  3. если проверку логина и пароля можно проводить классом наследующим AbstractAuthenticator, то как настроить фаерволл?

Использую симфони 7


Ответы (0 шт):