我按照Sf4沙箱安装了JWT Auth,但仍然收到此响应:
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“内容类型:application / json” http://localhost:8000/login_check -d'{“ email”:“ johndoe@test.fr”,“ password”:“ test”}'>
这是我的路线。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:
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 。 有人知道如何纠正此错误吗?
谢谢
Adrien
答案 0 :(得分:0)
在security.yaml中,将登录防火墙放在首位
firewalls:
login:
#login context
#other firewalls
答案 1 :(得分:0)
在security.yaml中,删除
main:
anonymous: true