Documentation Index
Fetch the complete documentation index at: https://kawax.biz/llms.txt
Use this file to discover all available pages before exploring further.
Fortify とは
Laravel Fortify は、フロントエンドに依存しない認証バックエンド実装です。ログイン・登録・パスワードリセット・メール確認・2FA・パスキーに必要なルートとコントローラーをすべて提供します。Fortify は UI を持ちません。スターターキットや独自の UI から Fortify のルートにリクエストを送ることで機能します。
歴史:Jetstream から現行スターターキットまで
なぜ現行スターターキットでも Fortify が使われているのか
当初の React/Vue スターターキットは Fortify なしで実装されていました。しかし 二要素認証(2FA)への対応が必要になった際、Fortify がそのまま採用されたことで、認証全体が Fortify ベースに切り替わりました。 Fortify は「フロントエンド非依存」として設計されているため、Inertia を使ったスターターキットとの相性が良く、現在も使われ続けています。Fortify は現在、最も長く使われ続けている Laravel 公式認証パッケージです。2020年の登場以来、Jetstream → 現行スターターキットと形を変えながら現役を続けています。
現行スターターキットの構成
React/Vue スターターキットでは以下のファイルで Fortify が設定されています。app/Providers/FortifyServiceProvider.php— ビュー・アクション・レート制限の登録config/fortify.php— 有効にする機能と認証設定
config/fortify.php の主要設定
Features::passkeys())はデフォルトで有効になっていません。有効化するには features 配列に追加します。
FortifyServiceProvider の設定
スターターキットの FortifyServiceProvider は 3 つの役割を担います。
1. アクションの設定
app/Actions/Fortify/ に配置されたクラスでユーザー作成とパスワードリセットのロジックをカスタマイズします。バリデーションやハッシュ処理はここに集約されています。
2. ビューの設定
Features::enabled() で機能フラグを確認してビューに渡しているのがポイントです。
Blade アプリでは
Inertia::render(...) の代わりに view('auth.login') を返します。フロントエンドを変えても FortifyServiceProvider 側だけ修正すれば認証ロジックは変わりません。3. レート制限の設定
loginリミッター: メールアドレスと IP アドレスの組み合わせで制限(ブルートフォース対策)two-factorリミッター: セッション内のログイン試行 ID で制限
config/fortify.php の limiters キーと一致するキーを RateLimiter::for() に登録します。
主な機能と登録されるルート
Fortify が登録する主なルートを機能別に整理します。| 機能 | メソッド | ルート |
|---|---|---|
| ログイン | GET | /login |
| ログイン | POST | /login |
| ログアウト | POST | /logout |
| 登録 | GET | /register |
| 登録 | POST | /register |
| パスワードリセット要求 | GET / POST | /forgot-password |
| パスワードリセット | GET / POST | /reset-password |
| メール確認 | GET | /email/verify |
| メール確認リンク再送 | POST | /email/verification-notification |
| パスワード確認 | GET / POST | /user/confirm-password |
| 2FA 有効化 | POST | /user/two-factor-authentication |
| 2FA チャレンジ | GET / POST | /two-factor-challenge |
| パスキーログイン | GET / POST | /passkeys/login |
| パスキー管理 | GET / POST / DELETE | /user/passkeys |
php artisan route:list --name=fortify または単純に php artisan route:list で実際に登録されているルートを確認できます。
二要素認証(2FA)
スターターキットではFeatures::twoFactorAuthentication() が有効化されています。confirm と confirmPassword はどちらも true に設定されています。
| オプション | 意味 |
|---|---|
confirm | 有効化後に認証コードでの確認を要求する |
confirmPassword | 2FA の設定変更前にパスワード確認を要求する |
2FA を有効化する
/user/two-factor-authentication に POST リクエストを送信します。成功するとセッションに two-factor-authentication-enabled ステータスがセットされます。パスキー
パスキーは Fortify の機能として最近追加されました。WebAuthn を使ったパスワードレス認証で、Face ID・Touch ID・Windows Hello・ハードウェアセキュリティキーに対応しています。有効化
config/fortify.php の features 配列に追加します。
User モデルに PasskeyUser コントラクトと PasskeyAuthenticatable トレイトを追加します。
config/fortify.php の passkeys キーで管理します。
Fortify のパスキーは内部で
laravel/passkeys Composer パッケージをラップしています。laravel/passkeys の設定ファイルを公開する必要はなく、config/fortify.php の passkeys キーが優先されます。@laravel/passkeys JS クライアント、React/Vue/Svelte ヘルパーなど)については、パスキー初期調査も参照してください。
関連ページ
カスタム認証ガード
Guard・StatefulGuard インターフェースを実装してカスタム認証ガードを作る方法を解説します。
公式ドキュメント: Laravel Fortify
インストール・全機能・カスタマイズの詳細は公式ドキュメントを参照してください。