Sanctum 和 Passport 在 Laravel 8–11 中是定位互补、并行维护的认证方案:Sanctum 专注轻量 API Token 与 SPA Cookie 认证,Passport 专精标准 OAuth2 授权;二者可共存于同一项目,按需路由隔离。

Sanctum 和 Passport 在 Laravel 8 到 11 中并非“此消彼长”的替代关系,而是定位清晰、适用场景分明的两套认证机制。Laravel 官方从未用 Sanctum “取代” Passport,而是持续并行维护——Sanctum 负责轻量、直接、无 OAuth 流程的 token 认证;Passport 专注标准 OAuth2 授权服务器能力。版本演进中,二者接口更稳定、配置更统一,但核心分工未变。
Sanctum 的定位始终如一:API Token + SPA 双模式轻认证
从 Laravel 8(2020年发布)引入 Sanctum 开始,其设计哲学就没变过:
- 为用户生成长期有效的 Personal Access Token(如 GitHub 风格),无需授权码、刷新令牌或客户端注册
- 同时支持两种认证路径:带 Bearer Token 的 API 请求(用于移动端/第三方调用),以及 基于 Cookie 的 SPA 会话认证(用于同域或可信跨域前端)
- Laravel 9/10/11 中,
EnsureFrontendRequestsAreStateful中间件逻辑更健壮,对 CORS、SameSite、CSRF 的默认处理更贴合现代浏览器规范 -
config/sanctum.php新增了stateful域名白名单、expiration全局有效期(单位:分钟)、encrypt开关等可配项,但数据库表结构(personal_access_tokens)自初版起未变
Passport 保持 OAuth2 完整性:适合需授权委托的复杂系统
Passport 在 Laravel 8–11 中持续强化标准兼容性与企业级能力:
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
- 仍依赖完整的 OAuth2 组件:授权码(Authorization Code)、密码(Password Grant,已弃用但兼容)、客户端凭证(Client Credentials)、隐式(Implicit,已移除)
- Laravel 10+ 默认禁用 Password Grant,推荐使用 PKCE 流程增强移动端安全;Laravel 11 进一步收紧
passport:install生成密钥的权限要求 - 令牌管理更精细:支持 scope 权限粒度控制、token 撤销链、自动过期清理任务(
passport:prune) - API 路由中间件始终为
auth:api(驱动为 passport),与 Sanctum 的auth:sanctum完全隔离,可共存于同一项目
如何选?看你的 API 是否需要“授权第三方代表用户操作”
这不是版本问题,而是架构判断:
- 你的前端是 Vue/React/Next.js 等独立 SPA,后端只服务自己?→ 用 Sanctum(Cookie + CSRF 安全,开发快)
- 你提供开放平台,允许第三方 App 申请 Client ID 并获取用户授权后访问数据?→ 必须用 Passport
- 你有多个内部微服务,需统一鉴权中心且要求标准协议互通?→ Passport 更易对接其他 OAuth2 客户端
- 你只需给 iOS/Android App 发一个长期 token,登录即得、无授权流程?→ Sanctum 的
createToken一行搞定
共存与迁移技巧:不冲突,可渐进
实际项目中,二者可以并存,甚至按路由分层使用:
- 在
config/auth.php中保留两个 guard:'sanctum'和'passport',分别指向不同 provider - API 路由分组示例:
Route::middleware('auth:sanctum')->group(function () {
// 内部管理接口、用户个人数据
});
Route::middleware('auth:passport')->group(function () {
// 开放平台接口、需 scope 校验的资源
}); - 若从 Passport 迁移到 Sanctum(例如旧系统去 OAuth 化),只需重写登录逻辑返回
$user->createToken(...)->plainTextToken,前端改用 Bearer 头,其余业务代码几乎不动
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










