Как обновить поле $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 обновленяется. Хз почему и где. Не могу найти. Обновляется, но не сохраняется. Кто может подсказать более правильное решение?