You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony 6.3.1集成JWT后login_check路由无法访问求助

Symfony 6.3.1集成JWT后login_check路由404问题排查方案

按以下步骤逐一排查:

1. 确认路由是否已注册

先执行命令查看系统所有已注册的路由:

php bin/console debug:router

如果输出里找不到api_login_check,说明路由未正确加载:

  • 检查routes.yaml的位置是否在config/根目录(Symfony 6默认配置),或当前环境的config/routes/子目录下;
  • 将api_login_check的定义移到controllers路由规则之前——Symfony路由按定义顺序匹配,若前面的注解路由意外匹配了/api/login_check,会导致自定义路由失效。

2. 修正JWT配置文件拼写错误

你的JWT配置文件名是lexit_jwt_authentication.yaml,正确名称应为lexik_jwt_authentication.yaml(末尾少了字母k)。文件名错误会导致LexikJWTAuthenticationBundle无法加载配置,虽不直接引发路由404,但会破坏后续认证逻辑,必须修正。

3. 确保请求方式为POST

login_check仅接收POST请求,若Postman使用GET方法会直接返回404。同时要确保请求体是JSON格式:

{
    "email": "你的邮箱地址",
    "password": "你的密码"
}

4. 检查路由前缀与项目Base Path

如果项目设置了APP_BASE_PATH环境变量,或路由配置中有全局前缀,实际访问路径会变为{前缀}/api/login_check。可通过debug:router的输出确认最终路由路径。

5. 验证防火墙配置一致性

核对security.yaml中json_login的check_path值(/api/login_check)与routes.yaml里的api_login_check路径完全一致,无拼写错误。另外login防火墙的pattern: ^/api/login会匹配所有以/api/login开头的路径,包含/api/login_check,这部分配置没问题。


内容的提问来源于stack exchange,提问作者Werner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:05:14