Как обновить поле $token у пользователя?

Всем привет!

Symfony 6

Использую JWT аутентификацию - lexik/LexikJWTAuthenticationBundle. Для обновления токена - markitosgv/JWTRefreshTokenBundle. В дефолтной Entity\User я добавил поле $token. Как при запросе на обновления токена обновить поле $token? То есть, когда мы делаем запрос на refresh_token, в ответе мы получаем поле access_token и refresh_token. В момент генерации ответа мне нужно взять access_token и обновить поле $token. Как такое сделать? В моей реализации - я создал сервис, который слушает событие lexik_jwt_authentication.on_authentication_success и у которого обязательно должен быть priority= -100, чтобы вызваться последним в генерации ответа для обновления токена.

Объявления сервиса:

App\Security\RefreshTokenTest:
    tags:
    # set priority to -100 to handle refresh_token and access_token from another packages
    - {name: kernel.event_listener, event: lexik_jwt_authentication.on_authentication_success, method: test, priority: -100}
    

И в нем я просто беру в сохраняю юзера:

class RefreshTokenTest
{
    public function __construct(private TokenStorageInterface $tokenStorage, private EntityManagerInterface $entityManager)
    {
        
    }

    public function test()
    {
        $user = $this->tokenStorage->getToken()->getUser();
        $this->entityManager->persist($user);
        $this->entityManager->flush();
    }
}

Сохраняю юзера без того, чтобы обновлять поле - потому что оно уже оказывается обновленно)) Где-то в недрах либы, $token обновленяется. Хз почему и где. Не могу найти. Обновляется, но не сохраняется. Кто может подсказать более правильное решение?


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