什麼是 Passport
Laravel Passport 是讓 Laravel 應用程式作為 OAuth2 授權伺服器運作的官方套件。 用於第三方應用整合,或需要嚴謹 OAuth2 流程的 API。Passport 與 Sanctum 比較
若必須使用 OAuth2 就選 Passport。 若目的是單純的 API token 認證或 SPA/行動裝置認證,就選 Sanctum。在建置由 AI 用戶端存取的 MCP 伺服器時,官方推薦使用 Passport。因為 MCP 用戶端通常以 OAuth 認證為前提。
安裝
Laravel 13 官方推薦使用install:api --passport。
設定
User model
在User model 加入 HasApiTokens trait 與 OAuthenticatable 介面。
auth guard
在config/auth.php 的 api guard 中使用 passport driver。
服務提供者設定
可在AppServiceProvider 的 boot() 定義 scope 與 token 有效期限。
用戶端管理
授權碼授權(authorization code grant)用的用戶端
用戶端憑證授權(client credentials grant)用的用戶端
EnsureClientIsResourceOwner middleware。
Token 管理
授予 Scope
檢查 Scope
失效
保護 API 路由
需以使用者存取權杖保護的 API 加上auth:api。
Personal Access Token
適用於不使用完整 OAuth2 流程,而由使用者本人核發 API token 的情境。若 Personal Access Token 是主要用途,Laravel 官方也建議考慮使用 Sanctum。