Skip to main content

什麼是 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.phpapi guard 中使用 passport driver。

服務提供者設定

可在 AppServiceProviderboot() 定義 scope 與 token 有效期限。

用戶端管理

授權碼授權(authorization code grant)用的用戶端

此用戶端會用於伴隨使用者同意畫面的 OAuth2 標準流程。

用戶端憑證授權(client credentials grant)用的用戶端

在機器對機器通訊的端點中,使用 EnsureClientIsResourceOwner middleware。

Token 管理

授予 Scope

檢查 Scope

失效

保護 API 路由

需以使用者存取權杖保護的 API 加上 auth:api
用戶端憑證授權的路由請使用 EnsureClientIsResourceOwner,而非 auth:api

Personal Access Token

適用於不使用完整 OAuth2 流程,而由使用者本人核發 API token 的情境。
若 Personal Access Token 是主要用途,Laravel 官方也建議考慮使用 Sanctum。

相關連結

最後修改於 2026年8月2日