Laravel API 认證失敗 JSON 回傳設定方法
Laravel默认将未认证请求重定向至登录页,导致API调用抛出路由异常;只需在请求头中添加Accept:application/json,即可触发框架返回标准JSON错误响应(如401Unauthorized),无需修改中间件或控制器逻辑。

Laravel 默认将未认证请求重定向至登录页,导致 API 调用抛出路由异常;只需在请求头中添加 Accept: application/json,即可触发框架返回标准 JSON 错误响应(如 401 Unauthorized),无需修改中间件或控制器逻辑。
在 Laravel API 开发中,当你使用 Sanctum(或 Passport)保护路由(如 Route::middleware('auth:sanctum'))时,框架底层仍沿用 Web 认证的异常处理机制:未通过认证的请求会被重定向到 login 路由。但由于你的项目是纯 API(无 web 中间件组、未定义 login 命名路由),此重定向会触发 RouteNotFoundException,而非预期的 JSON 错误响应。
根本原因在于 Laravel 的认证守卫(Guard)根据请求的 Accept 请求头决定响应格式:
- 若 Accept: text/html(浏览器默认)→ 尝试重定向 → 报错;
- 若 Accept: application/json(API 客户端显式声明)→ 直接返回 401 Unauthorized JSON 响应。
✅ 正确解决方案(无需改代码):
在 Postman(或任意 HTTP 客户端)中,为所有受保护的 API 请求(如 GET /api/movies)手动添加请求头:
Accept: application/json Authorization: Bearer your-token-here // 认证时才需此项
此时,当 Token 缺失、过期或无效时,Laravel 将自动返回标准化 JSON 响应:
{
"message": "Unauthenticated."
}HTTP 状态码为 401 Unauthorized,符合 REST API 规范。
⚠️ 注意事项:
- 不要尝试在 api.php 中用 Auth::check() 手动拦截 —— 这绕过了 Sanctum 的守卫机制,且无法统一处理 Token 解析、刷新等逻辑;
- 不要重写 Authenticate 中间件(App\Http\Middleware\Authenticate)—— Laravel 10+ 已内置对 Accept: application/json 的智能响应支持;
- 确保 config/auth.php 中 sanctum guard 的 provider 配置正确指向 users 模型;
- 若使用自定义异常处理(app/Exceptions/Handler.php),可进一步优化 JSON 错误结构,但非必需:
// app/Exceptions/Handler.php
public function render($request, Throwable $exception)
{
if ($exception instanceof AuthenticationException && $request->expectsJson()) {
return response()->json(['message' => 'Unauthorized'], 401);
}
return parent::render($request, $exception);
}总结:Laravel API 认证的“静默重定向”行为是设计使然,而非缺陷。显式声明 Accept: application/json 是告诉框架“我是一个 API 客户端,请用 JSON 响应错误”,这是最轻量、最符合 Laravel 惯例的解决方案。 在前端 Axios/Fetch 或移动端 SDK 中,也务必全局设置该请求头,确保一致性。
Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。
Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。
Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。
PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。
Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等
Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。













