複数の企業が利用できるECサイト(楽天みたいな)をlaravel5.5で作る場合は、権限が複数(ユーザ・企業・システム管理者)必要なので、実装してみた。

複数の企業が利用できるECサイト(楽天みたいな)をlaravel5.5で作る場合は、権限が複数(ユーザ・企業・システム管理者)必要なので、実装してみた。

1, ユーザ・アカウント
2, 企業アカウント
3, システム管理者

の3パターンの権限が必要

前のLTS(Long Term Support)のlaravel5.1だと、usersテーブルしかない。
laravel5.5だと、標準認証でusersテーブル以外も使い分けられる。

// ユーザ・アカウントでの認証
1, 標準認証の下準備

2, routes/web.php にてミドルウェアで認証の種類(標準)とURLを指定する

これだけでusersテーブルを使った認証が実装できる。超簡単!
認証を追加するのは、これよりちょっとだけ面倒

// システム管理者での認証
1, adminテーブルを作る

usersテーブルと同じ構造のカラムにする
/database/migrations/xxxx_create_admins_table.php

2, adminsテーブルのクラスを作る

Users.phpのコピペ(クラス名だけ変更)
/app/Admine.php


3, config/auth.phpで認証の種類を定義する

guards = 認証の名称+認証情報の保持
provider = どのテーブルで認証するか+どの認証ドライバーを使うか
password = 有効期限とパスワードリセットの設置絵
基本的には、デフォルトのusersのコピペ。

4, routes/web.php 認証フォームと認証後OKなURLを指定する

5, ログインフォームとログイン後のページのコントローラーを作る。面倒なので参照URLを見て
Admin/LoginController.php
Admin/HomeController.php

6, 管理者画面を作る
/resources/views/admin/login.blade.php
/resources/views/admin/home.blade.php
/resources/views/layout/app_admin.blade.php

7, usersテーブルは画面からレコードが作れるけど、adminはphpmyadmin か php artisan tinker か seeding でレコード生成する

企業アカウント(company_admin)もadminと同じ感じで作ればOKだった。

※app/Exceptions/Handler.phpにunauthenticatedメソッドが無かったので
admin以下のフォルダに未認証状態でアクセスしと時にログイン画面にリダイレクトするのが出来なかった。

参照URL

Laravel5.4でマルチ認証(userとadmin)を実装する方法