什么是 Passport
Laravel Passport 是让 Laravel 应用作为 OAuth2 授权服务器运行的官方包。 适用于与第三方应用对接,或需要严格遵循 OAuth2 流程的 API。Passport vs Sanctum
若必需 OAuth2,请选择 Passport。 若仅是简单的 API 令牌认证或 SPA / 移动端认证,请选择 Sanctum。构建供 AI 客户端访问的 MCP 服务器时,官方推荐使用 Passport。因为 MCP 客户端通常以 OAuth 认证为前提。
安装
Laravel 13 的官方推荐是install:api --passport。
配置
User 模型
在User 模型上添加 HasApiTokens trait 与 OAuthenticatable 接口。
auth 守卫
在config/auth.php 的 api 守卫中使用 passport 驱动。
服务提供者配置
可在AppServiceProvider 的 boot() 中定义 scope 与 token 有效期。
客户端管理
授权码授权用客户端
客户端凭证授权用客户端
EnsureClientIsResourceOwner 中间件。
令牌管理
授予 Scope
检查 Scope
失效
API 路由的保护
对以用户访问令牌保护的 API 添加auth:api。
Personal Access Token
不使用完整的 OAuth2 流程,适合用户自行签发 API 令牌的场景。若主要用途是 Personal Access Token,官方也推荐考虑使用 Sanctum。