使用 Sf4 进行 Lexik JWT 身份验证:未捕获的异常:无法找到路径“/login_check"的控制器 [英] Lexik JWT Authentification with Sf4 : Uncaught Exception: Unable to find the controller for path "/login_check"
问题描述
我按照 Sf4 沙箱安装了 JWT 身份验证,但我仍然收到此响应:
I followed the Sf4 sandbox to install JWT Auth, but still I have this response :
2019-01-03T18:39:27+01:00 [info] Matched route "login_check".
2019-01-03T18:39:27+01:00 [info] Populated the TokenStorage with an anonymous Token.
2019-01-03T18:39:27+01:00 [warning] Unable to look for the controller as the "_controller" parameter is missing.
2019-01-03T18:39:27+01:00 [critical] Uncaught Exception: Unable to find the controller for path "/login_check". The route is wrongly configured.
[Thu Jan 3 18:39:27 2019] 127.0.0.1:48564 [404]: /login_check
当我尝试这个命令时:
curl -X POST -H "Content-Type: application/json" http://localhost:8000/login_check -d '{"email":"johndoe@test.fr","password":"test"}'
curl -X POST -H "Content-Type: application/json" http://localhost:8000/login_check -d '{"email":"johndoe@test.fr","password":"test"}'
这是我的 routes.yaml :
Here is my routes.yaml :
index:
path: /
controller: App\Controller\DefaultController::index
register:
path: /register
controller: App\Controller\DefaultController::register
methods: POST
api:
path: /api
controller: App\Controller\DefaultController::api
login_check:
path: /login_check
methods: [POST]
这是我的 security.yaml :
And here is my security.yaml :
security:
encoders:
App\Entity\User:
algorithm: bcrypt
cost: 12
# 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
main:
anonymous: true
login:
pattern: ^/login
stateless: true
anonymous: true
json_login:
check_path: /login_check
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
username_path: email
password_path: password
api:
pattern: ^/
stateless: true
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
# 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 }
我使用的是 PHP7.2 和 Symfony 4.2.有人知道如何纠正这个错误吗?
I am using PHP7.2 and Symfony 4.2. Does someone know how to correct this error ?
谢谢,
阿德里安
推荐答案
在security.yaml中将登录防火墙放在第一位
In security.yaml put login firewall at the first place
firewalls:
login:
#login context
#other firewalls
这篇关于使用 Sf4 进行 Lexik JWT 身份验证:未捕获的异常:无法找到路径“/login_check"的控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!