【PHP/Laravel】Laravel Fortify

Laravel Fortify
- Laravel Fortifyはバックエンド側のみの実装で、フロントエンドにはとらわれない。
- 認証機能(ログイン、ユーザー登録、パスワードのリセット、メールの検証など)の実装に必要なルート、コントローラー等が提供される。
- 勘所を掴むために、Fortifyの前にスターターキット(Laravel Breeze、Jetstream)を調べることを勧めている。スターターキットを取り入れている場合には、Fortifyをインストールする必要は無い。
- スターターキットを使用していない場合、認証機能を自前で用意するか、認証機能のバックエンド側をFortifyで用意するか、いずれかを選択する。自前で用意する場合には、 ドキュメントの認証、パスワードリセット、メール確認に従い実装する。Fortifyを選択する場合には、ドキュメントにあるように、Fortifyの認証ルート(login、logout、forgot-password、reset-password)にリクエストを送る。
インストール
- これによりapp/Actionsにリソースを公開、また、Fortifyの構成ファイルとマイグレーションも公開される。
- config/app.phpのproviders配列内に、App\Providers\FortifyServiceProviderクラスが登録されていることも確認する(::classについて)。
- FortifyServiceProviderは、タスク実行時に、公開した各Actionsを使用するように指示している。
- config/fortifyのfeatures設定配列は、Fortifyがデフォルトで公開するバックエンドルート/機能を定義している。そのため、使用する機能以外はコメントアウトすればルーティングされない。
FortifyServiceProvider
FortifyServiceProviderで、Fortifyに指示を出す。
- login.blade.phpに、/loginへPOSTリクエストを行うフォームが含まれていることを確認する。
- デフォルトでは、メール/ユーザー名とパスワードを想定。config/fortify.phpのusernameと一致しているか確認する。メールではなくuseridに変えた場合、config/fortify.phpも同様に修正する。
- ユーザー認証をカスタマイズしたい場合、Fortify::authenticateUsingメソッドを使用する。emailをuseridに変えている場合、emailを変更する。
- ログインが成功すると、config/fortifyのhome設定オプションで設定されているURIへリダイレクトする。ここをカスタマイズする場合、FortifyServiceProviderクラスのregister()で設定する。
- 認証の中身は、fortify/routes/routes.phpを参照する。
参照
・laravel/fortify
・Laravel 9.x Laravel Fortify
・Laravel Fortify