Skip to main content

什么是 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.phpapi 守卫中使用 passport 驱动。

服务提供者配置

可在 AppServiceProviderboot() 中定义 scope 与 token 有效期。

客户端管理

授权码授权用客户端

该客户端用于伴随用户同意画面的 OAuth2 标准流程。

客户端凭证授权用客户端

对于机器间通信的端点,使用 EnsureClientIsResourceOwner 中间件。

令牌管理

授予 Scope

检查 Scope

失效

API 路由的保护

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

Personal Access Token

不使用完整的 OAuth2 流程,适合用户自行签发 API 令牌的场景。
若主要用途是 Personal Access Token,官方也推荐考虑使用 Sanctum。

相关链接

最后修改于 2026年8月2日