Я пытаюсь найти его в документации, есть ли способ декодировать токен в идентификатор пользователя. Предоставляет ли этот комплект такую опцию / услугу? Спасибо




Итак, решение, которое сработало, заключалось в создании нового правила брандмауэра.
auto_login:
pattern: ^/auto_login
anonymous: true
stateless: true
lexik_jwt:
query_parameter:
enabled: true
name: bearer
Теперь я могу передать токен как запрос на получение
/auto_login/redirect_to_some_url?bearer=eyJhbGciOiJSUzI1...
и в контроллере для маршрута "/ auto_login" я создаю сеанс для пользователя, если токен в порядке, и я автоматически авторизуюсь, выглядит и работает хорошо.
/**
* @Route("/auto_login", name = "auto_login")
* @Route("/auto_login/{redirect}")
*/
public function autoLoginAction(Request $request, $redirect = null)
{
$current_user_id = $this->getUser()->getId();
if ($redirect && $current_user_id) {
$user = $this->getDoctrine()->getManager()->getRepository('AppBundle:User')->find($current_user_id);
$sf_token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
$this->get('security.token_storage')->setToken($sf_token);
$this->get('session')->set('_security_main', serialize($sf_token));
$event = new InteractiveLoginEvent($request, $sf_token);
$this->get('event_dispatcher')->dispatch('security.interactive_login', $event);
return $this->redirectToRoute($redirect);
} else {
return $this->redirectToRoute('login');
}
}
Я получил это до сих пор, но не уверен, как преобразовать фактический токен. Реализовать интерфейс Symfony \ Component \ Security \ Core \ Authentication \ Token \ TokenIn terface
$jwtManager = $this->container->get('lexik_jwt_authentication.jwt_manager'); $x = $jwtManager->decode($token);