什么是 Passport
Laravel Passport 是让 Laravel 应用作为 OAuth2 授权服务器运行的官方包。 用于第三方应用集成,或需要严格遵循 OAuth2 流程的 API。Passport 与 Sanctum 的对比
如果必须支持 OAuth2,请选择 Passport。 如果只是单纯的 API 令牌认证,或用于 SPA / 移动端认证,请选择 Sanctum。安装
Laravel 13 官方推荐使用install:api --passport。
配置
User 模型
在User 模型上添加 HasApiTokens trait 和 OAuthenticatable 接口。
auth 守卫
在config/auth.php 中,让 api 守卫使用 passport 驱动。
服务提供者配置
在AppServiceProvider 的 boot() 中可以定义作用域并设置令牌有效期。
客户端管理
授权码授权(Authorization Code)客户端
客户端凭证授权(Client Credentials)客户端
EnsureClientIsResourceOwner 中间件。
令牌管理
附加作用域
校验作用域
吊销
保护 API 路由
为使用用户访问令牌进行保护的 API 添加auth:api。
Personal Access Token
适合不使用完整 OAuth2 流程,让用户自己签发 API 令牌的场景。如果 Personal Access Token 是主要用途,Laravel 官方也建议考虑使用 Sanctum。