跳转到主要内容

什么是 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 驱动。

服务提供者配置

AppServiceProviderboot() 中可以定义作用域并设置令牌有效期。

客户端管理

授权码授权(Authorization Code)客户端

这种客户端用于伴有用户同意页面的 OAuth2 标准流程。

客户端凭证授权(Client Credentials)客户端

对于机器间通信的接口,请使用 EnsureClientIsResourceOwner 中间件。

令牌管理

附加作用域

校验作用域

吊销

保护 API 路由

为使用用户访问令牌进行保护的 API 添加 auth:api
对于使用客户端凭证授权的路由,请使用 EnsureClientIsResourceOwner 而不是 auth:api

Personal Access Token

适合不使用完整 OAuth2 流程,让用户自己签发 API 令牌的场景。
如果 Personal Access Token 是主要用途,Laravel 官方也建议考虑使用 Sanctum。

相关链接

最后修改于 2026年7月18日