Laravel+Breeze(仅API)调用/api/user接口报错求助
解决Laravel Breeze API中/api/user接口请求冲突问题
排查步骤与解决方法
1. 确保GET请求的纯净性
发送GET /api/user时,绝对不要在Postman的请求Body中添加任何内容(包括form-data、raw、x-www-form-urlencoded等标签下的所有数据都要清空)。部分情况下,即使选择GET方法,若Body存在内容,Postman可能会暗中修改请求行为,导致Laravel识别异常。
2. 正确配置认证头
登录成功后会返回token字段,在GET /api/user请求的Headers中添加:
- 键:
Authorization - 值:
Bearer {你的登录token}
示例:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
3. 正确携带CSRF Token(若需)
虽然API模式下Sanctum通常不需要CSRF验证,但如果是同域场景测试,需确保:
- 调用
/sanctum/csrf-cookie后,Postman已保存响应的Cookie(可在Postman的Cookies面板查看是否存在XSRF-TOKEN) - 在
GET /api/user的Headers中添加:- 键:
X-XSRF-TOKEN - 值:从Cookie中复制的
XSRF-TOKEN值(注意需解码URL编码的内容,比如把%2F转成/,Postman环境变量提取时可使用decodeURIComponent()处理)
- 键:
4. 清除Laravel路由缓存
在项目根目录执行命令:
php artisan route:clear
避免旧路由缓存导致的方法匹配异常,之后执行php artisan route:list确认/api/user的路由信息:方法为GET,中间件包含auth:sanctum。
5. 检查Postman请求的实际发送方式
打开Postman的Console面板(左下角),发送请求后查看实际发送的请求方法、Headers和Body,确认确实是GET请求且无多余内容。
内容的提问来源于stack exchange,提问作者Genaut
相关产品推荐
相关产品推荐

