应返回含 example_header 字段的响应,如{"token":"8|abc...","example_header":"authorization: bearer 8|abc..."},并在文档中明确标注header格式为"authorization: bearer {token}",首字母大写、冒号后空格,同时提供scribe等工具自动注入方案。

直接在 Laravel 文档中为需要鉴权的接口自动生成 Authorization: Bearer {token} 请求头示例,关键不是“写得漂亮”,而是确保示例可复制、不报错、适配真实运行环境。核心在于把 token 获取逻辑和请求头组装逻辑显式暴露给文档读者,同时规避常见陷阱。
用 Sanctum 登录接口返回 token 后立即生成示例
登录成功后,不要只返回 {"token": "xxx"},而应在响应体中附带标准化的请求头模板:
- 控制器中返回时增加
example_header字段:"example_header": "Authorization: Bearer {{ token }}" - 前端或文档渲染时,将
{{ token }}替换为实际值(如 Postman 可用变量{{auth_token}}) - 示例响应 JSON 示例:
{ "token": "8|abcd1234567890...", "example_header": "Authorization: Bearer 8|abcd1234567890..." }
在 API 资源或响应转换器中统一注入 header 示例
若使用 ApiResource 或 Fractal / JsonResource,可在资源类中动态拼接:
- 在
toArray()中添加:'curl_example' => 'curl -H "Authorization: Bearer ' . $this->whenAppended('token') . '" ' . config('app.url') . '/api/profile' - 或返回结构化 header 字段:
'headers' => ['Authorization' => 'Bearer ' . $this->resource->createToken('docs')->plainTextToken]
(注意:仅用于文档演示,生产环境勿在响应中泄露新 token)
文档生成工具自动提取并渲染(推荐)
使用 Scribe 或 Laravel API Docs 等工具时,配置其自动注入 Authorization 示例:
- 在 Scribe 的
scribe.php配置中启用:'auth' => ['in' => 'header', 'name' => 'Authorization', 'value' => 'Bearer {YOUR_API_TOKEN}'] - 配合 Sanctum 的
personal_access_tokens表,用测试用户生成一个长期有效的文档专用 token:php artisan tinker --execute="App\Models\User::first()->createToken('docs')->plainTextToken" - 工具会将
{YOUR_API_TOKEN}替换为该值,并在所有受保护接口的示例请求中自动显示完整 header 行
绕过大小写陷阱,明确标注 header 格式
部分 Nginx/FastCGI 环境会把 Authorization 转成小写,导致 Laravel 默认解析失败。文档中必须强调:
- 请求头字段名必须是 Authorization(首字母大写,其余小写),不是
authorization或AUTHORIZATION - 冒号后必须有一个英文空格:
Bearer xxx✅,Bearer:xxx❌,Bearer=xxx❌ - 若部署环境无法保证 header 大小写,建议在中间件中兼容读取:
$token = $request->header('authorization') ?? $request->header('Authorization');











