Skip to main content

Passportとは

Laravel Passport は、Laravel アプリを OAuth2 認可サーバーとして動かすための公式パッケージです。 サードパーティアプリ連携や、厳密な OAuth2 フローが必要な API で使います。

Passport vs Sanctum

OAuth2 が必須なら Passport を選びます。 単純な API トークン認証や SPA / モバイル認証が目的なら Sanctum を選びます。

インストール

Laravel 13 の公式推奨は install:api --passport です。
既存プロジェクトで手動導入する場合は、次のコマンドでもセットアップできます。
初回デプロイ時は鍵生成だけ実行したいケースもあります。

設定

Userモデル

User モデルに HasApiTokens トレイトと OAuthenticatable インターフェースを追加します。

authガード

config/auth.phpapi ガードで passport ドライバーを使います。

サービスプロバイダー設定

AppServiceProviderboot() でスコープ定義とトークン有効期限を設定できます。

クライアント管理

認可コードグラント用クライアント

このクライアントは、ユーザー同意画面を伴う OAuth2 の標準フローで使います。

クライアントクレデンシャルグラント用クライアント

マシン間通信のエンドポイントでは EnsureClientIsResourceOwner ミドルウェアを使います。

トークン管理

スコープ付与

スコープチェック

失効

APIルートの保護

ユーザーアクセストークンで保護する API には auth:api を付けます。
クライアントクレデンシャルグラントのルートは auth:api ではなく EnsureClientIsResourceOwner を使ってください。

Personal Access Token

OAuth2 の完全フローを使わず、ユーザー自身が API トークンを発行する用途に向いています。
Personal Access Token が主用途なら、Laravel公式でも Sanctum を検討することが推奨されています。

関連リンク

最終更新日 2026年4月17日