Токен декодирования LexikJWTAuthenticationBundle в контроллере

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

Я получил это до сих пор, но не уверен, как преобразовать фактический токен. Реализовать интерфейс Symfony \ Component \ Security \ Core \ Authentication \ Token \ TokenIn‌ terface $jwtManager = $this->container->get('lexik_jwt_authentication.jwt_manager'‌​); $x = $jwtManager->decode($token);

user1529918 12.06.2018 04:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
3
1
410
1

Ответы 1

Итак, решение, которое сработало, заключалось в создании нового правила брандмауэра.

    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');
    }
}

Другие вопросы по теме