Symfony JWT token invalide

Par Frederic Husson, il y a 4 ans


Bonjour,

j'ai mis en place LexikJWTAuthenticationBundle

je peux me connecter et recevoir un token cependant j'ai mis en place une fonction me permettant de lire ce token issue de la doc

mais il m'est impossible d'accéder à la route ont me dit que le token est invalide, je fais mes testes avec postman

voici mon security.yaml

security: # https://symfony.com/doc/current/security/authenticator_manager.html enable_authenticator_manager: true # https://symfony.com/doc/current/security.html#c-hashing-passwords password_hashers: Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto' App\Entity\User: algorithm: auto # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers providers: # used to reload user from session & other features (e.g. switch_user) app_user_provider: entity: class: App\Entity\User property: email firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false login: pattern: ^/api/login_check stateless: true json_login: check_path: /api/login_check success_handler: lexik_jwt_authentication.handler.authentication_success failure_handler: lexik_jwt_authentication.handler.authentication_failure api: pattern: ^/api/me stateless: false jwt: ~ #main: # lazy: true # provider: app_user_provider # activate different ways to authenticate # https://symfony.com/doc/current/security.html#firewalls-authentication # https://symfony.com/doc/current/security/impersonating_user.html # switch_user: true # Easy way to control access for large sections of your site # Note: Only the *first* access control that matches will be used access_control: # - { path: ^/admin, roles: ROLE_ADMIN } # - { path: ^/profile, roles: ROLE_USER } - { path: ^/api/login, roles: PUBLIC_ACCESS } - { path: ^/api/me, roles: IS_AUTHENTICATED_FULLY }

et mon controller UserController

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Lexik\Bundle\JWTAuthenticationBundle\Services\JWTTokenManagerInterface; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; class UserController extends AbstractController { public function __construct(TokenStorageInterface $tokenStorageInterface, JWTTokenManagerInterface $jwtManager) { $this->jwtManager = $jwtManager; $this->tokenStorageInterface = $tokenStorageInterface; } #[Route('api/me', name: 'users')] public function index(): Response { $decodedJwtToken = $this->jwtManager->decode($this->tokenStorageInterface->getToken()); return $decodedJwtToken; } }

Aucune réponse