Laravel5.6, 5.7「Voyager」パッケージの認証をフロントと分離!(multi-auth)

Laravel5.6, 5.7「Voyager」パッケージの認証をフロントと分離!(multi-auth)

前回までの記事ではLaravel と管理画面パッケージ「Voyager」の実装、およびVoyagerの機能紹介などをお伝えしていますが、今回もLaravel関連です!

サイトを個人で開発、運用する方にはほぼLaravel+Voyagerデフォルトで運用していただいて問題ないのですが、管理ユーザーとフロントのユーザーは別に管理するよっていう開発環境ですと、いくつか問題があります、、、

 

・管理者とフロントのユーザーを同じテーブルで管理すると、管理画面にログイン出来ない権限を用意する必要がある。

・管理画面とフロントのユーザーを別テーブルで管理するとき、Laravelのバージョンによって認証方法が違う(guardだったりProviderだったり)

・認証セッションがぶつかる(管理画面でログインしたらフロントの認証が切れるなど、、、お客様がいる場合の開発ではやべーバグです)

 

ですのでauth.php, セッション周りを弄って、フロントと管理画面がぶつからないようにしましょう!

 

①Laravel5.* プロジェクト作成

適当にプロジェクトを作成します。今回は認証周りなので、authとしました。.envファイルなど、各設定は環境に合わせて実施してください!

②認証機能追加

laravelには認証機能がデフォルトで備わっていますので、上記コマンドでRegisterControllerやLoginControllerなど、認証に必要な基本機能を一発で出力してくれます。

③Customerモデル作成、マイグレーション

Customerモデルをartisanコマンドで作成します。オプションに-mを記述すると、マイグレーションファイルも一緒に生成してくれます。

マイグレーションファイルcreate_users_table.php中のテーブル情報を、create_customers_table.phpにコピーし、マイグレーションします。

④customersテーブルで認証

・auth.phpを編集します

もともとあったwebとかのguardはvoyager実装の段階で使うので、デフォルトguard以外は全て追記してください。削除、コメントアウトは必要ありません。

・RegisterController.phpも編集します

ここまで出来たらフロントのユーザー認証はcustomersテーブルを使用したものに切り替わっているはずです!出来ない場合は、編集漏れがないか、artisan serveをやり直してみるなどしてみてください。

⑤Voyagerインストール

こっちの記事を参考にしてください!

⑥auth.php, session.php, .envファイルの編集

・.env

・auth.php

・session.php

大体こんな感じでセッションを分離できます。

Voyagerはデフォルトでusersテーブルを使用して認証を行なっています。vendor以下はなるべくいじりたくないので、customersテーブルを用意してみました。

 

 

Laravelカテゴリの最新記事