【PHP/Laravel】Laravel Fortify + AdminLTE 認証
まず、Laravel Fortify、AdminLTEについて、以前の記事で若干触れてる。
Laravel Fortify + AdminLTE 認証
- Fortifyのみではフロント側は無いため、公式のように書くか、自作しないといけない。または、スターターキットを利用する。他にAdminLTEのようにフロントのフレームワークを利用するのも一つの手。
- FortifyServiceProvider.phpで、Fortifyにタスクの指示を出す。ログイン、パスワードリセット、メール認証、パスワード再設定等。それが、Fortify::loginViewなど。DI(依存性の注入)についてもここに書いている。ログイン条件を指定、追加したりする場合には、FortifyServiceProviderや別途ミドルウェアに書いて、処理を分岐させる。Kernel.phpにも追加する。トークン周りの処理もここに。
- 基本設定周りは、config/fortify.php、config/adminlte.php、config/auth.phpを変更する。
- 認証はデフォルトでusersテーブルに設定されているため、他のテーブルに変更したい場合には、基本設定周りの変更、usersのように対象Modelやマイグレーションファイルの変更(Authenticatable継承)が必要。
- AdminLTEを使用する場合、wikiのBasic Configurationにあるコマンドを実行することで、views\auth\以下に、login.blade.php、reset.blade.php、email.blade.php等が追加されている。これをfortifyのフロント側として使用。fortifyのルーティングは\fortify\routes\routes.phpに書かれてある。これとAdminLTEのフロントを利用することで認証をカスタマイズする。カスタマイズに当たっては、より踏み込んで見る必要もある(ex. PasswordBroker.php)。
参照
・Laravel Fortify
・Laravel 9.x サービスコンテナ
・jeroennoten/Laravel-AdminLTE
・laravel/framework
・LaravelのPasswordBrokerについて調べる