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

API-Platform JWT报错:未找到GET /api/login路由

解决LexikJWTAuthenticationBundle登录路由找不到的问题

你遇到的"No route found for 'GET /api/login'"问题,其实是LexikJWTAuthenticationBundle的使用细节没踩对,主要是请求方法错误和路由路径不匹配这两个点,新手很容易在这里栽坑,我给你一步步梳理解决方案:

1. 纠正请求的方法和端点路径

LexikJWTAuthenticationBundle的默认登录验证端点是/api/login_check,而且它只接受POST请求,不支持GET!你用GET请求/api/login自然找不到对应的路由。

正确的测试方式应该是发送POST请求到/api/login_check,并且把用户名和密码放在请求体里(绝对不要放在URL参数里,会泄露敏感信息)。举个curl的例子:

curl -X POST -H "Content-Type: application/json" http://localhost:8000/api/login_check -d '{"username":"john","password":"doe"}'

2. 检查路由配置是否正确

确保你的路由配置里已经注册了登录验证的路由:

  • 如果你是用单独的路由文件,打开config/routes/lexik_jwt_authentication.yaml,确认内容如下:
api_login_check:
    path: /api/login_check
    methods: [POST]
  • 要是你把路由写在config/routes.yaml里,也要保证有上面这段配置。

你可以运行Symfony的路由调试命令,确认这条路由是否存在:

php bin/console debug:router

在输出里找api_login_check,看看它的路径和允许的请求方法是不是和上面的配置一致。

3. (可选)自定义登录路径

如果你确实想把登录路径改成/api/login,只需要修改路由配置里的path值就行,比如:

api_login_check:
    path: /api/login
    methods: [POST]

但记住,请求方法必须保持POST,不能用GET。

按照上面的步骤调整后,应该就能正常获取JWT令牌了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:07:54