laravelでログイン機能を付ける。
laravelを含むwebアプリで必要な機能は主に下記の三つ
- ログイン機能の実装(登録・ログイン画面・パスワード変更等)
- ログインの権限レベルの設定(有り・無し)
- 画面遷移の制御
ログイン機能の実装
まずログイン機能の実装ですがlaravel8標準のログイン機能の実装を使います。
laravel7まではlaravel/uiが使われいましたが、今回はJetstremと言うライブラリが使われています。
Jetstremを利用するのに livewireとinertia版の2つがあるようなので今回は
php artisan jetstream:install inertia
でインストールします。
inertiaはlaeravelからvueへの変数を簡単に渡せる便利なライブラリです。vueを使う場合には是非使いたいです。
管理権限の設定の有無
ユーザーだけなのか、管理者がいるのか、管理者の中にもスタッフとシステム管理者がいるのか等管理権限が複数ある時があります。
その場合、ユーザーマスタと管理者マスタを二つ作ってアクセス制御するパターンもあるのですが、実装難易度を低くするなら、一つのユーザーテーブルの中に管理権限レベルで設定するのが楽です。
セキュリティレベルを上げる為にテーブルを分けるのもありですが、工数とうの相談になります。
ログイン画面を二つ作る事や、laravelの標準のログイン機能では、テーブルを二つに分ける事は想定に入ってないため、laravel標準を使い工数短縮するなら、テーブル一つでいくのがベストでしょう。
また権限設定ですが、role_levelのような権限レベルを持たせ
1~5なら管理者、6以上は一般ユーザーと区切る事で、管理者と一般ユーザーでも画面表示レベルを持たせることができます。
画面遷移ロジックの実装も一つのカラムを参照すれば良いので、複雑な権限レベルを持たせる場合でなければこちら楽です。
画面遷移の制御
画面の遷移の制御ですが、laravelの場合web.phpにmiddlewareを使い実装します。