Я успешно установил платформу API, она хорошо работает со всеми моими сущностями. Теперь я пытаюсь добавить аутентификацию JWT с помощью LexikJWTAuthenticationBundle, но когда я отправляю запрос на вход, я получаю:
Не найден маршрут для "GET / api / login"
Мой запрос :
http://localhost:8000/api/login?username=john&password=doe
Я использую Symfony 4, вот мой security.yaml:
encoders:
App\Entity\User:
algorithm: bcrypt
providers:
entity_provider:
entity:
class: App\Entity\User
property: username
firewalls:
login:
pattern: ^/api/login
stateless: true
anonymous: true
provider: entity_provider
json_login:
check_path: /api/login
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
provider: entity_provider
stateless: true
anonymous: true
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
access_control:
- { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api, roles: IS_AUTHENTICATED_FULLY }
Я думаю, что пакет JWT работает хорошо, потому что, когда я пытаюсь получить доступ к ресурсу, я получаю:
{"code":401,"message":"JWT Token not found"}
Я думаю, это просто вопрос маршрутизации, но поскольку я новичок в Symfony, я не знаю, что делать ...
Я уже пробовал менять паттерны, проверять путь ...
Намек?
ИЗМЕНИТЬ: я добавил это в routes.yaml:
api_login_check:
path: /api/login
Теперь у меня есть :
Не удалось найти контроллер по пути "/ api / login". Маршрут настроен неправильно.
Подробности из журналов:
ПРЕДУПРЕЖДЕНИЕ 09:40:52 запрос Невозможно найти контроллер, так как отсутствует параметр "_controller".
ОШИБКА 09:40:53 request Uncaught PHP Exception Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException: «Невозможно найти контроллер для пути« / api / login ». Маршрут настроен неправильно».