ada beberapa cara dalam penerapan multi auth pada laravel. pertama tetap memakai Autentifikasi User dengan modifikasi tambahan kolom role, misal dengan role 1 sebagai admin dan role 0 sebagai user biasa. cara itu memang lebih mudah/simple daripada dengan memakai dua tabel terpisah User dan Admin.

tapi bagaimana jika tetap ingin menggunakan Autentifikasi dari dua tabel? berikut akan dibahas tapi caranya memang sedikit njlimet.

langkah pertama membuat autentifikasi untuk User dengan make:auth


maka ini akan meng-generate file Controller untuk proses autentifikasi.


bagian User sudah sekarang lanjut ke Admin. buat Model dan Migrations seperti dengan User.

tabel users.


tabel admins


kemudian untuk class Modelnya juga. yang perlu diperhatikan disini adalah class nya extends Authenticatable bukan Model.



Copy Controller Auth user untuk autentifikasi Admin. buat folder tersendiri.


sesuaikan AuthController hasil copy tadi. atur namespace dan model untuk Admin.


sekarang menyiapkan konfigurasinya. buka file config/auth.php, tambahkan ke dalam guards.


config/auth.php bagian providers.


config/auth.php bagian passwords.


pindah ke Controller untuk Admin Auth. tambahkan spesifik untuk redirect dan guard.


masih di Controller Admin Auth tambahkan dua method untuk login dan register admin. disini ditambahkan use Illuminate\Support\Facades\Auth; fungsinya yaitu untuk memproteksi halaman dari akses user. misal user sudah login apakah bisa membuka halaman admin/login dan admin/register? tentu saja tidak karena itu diredirect ke halaman user.


kemudian di Controller Auth User juga di override function showLoginForm() dan showRegistrationForm(). tambahkan Auth juga agar admin sudah login tidak bisa mengakses halaman /login dan /register user.


prosesnya tinggal sedikit lagi yaitu membuat Middleware untuk Admin. fungsi middleware ini untuk memproteksi halaman khusus Admin.


proses selanjutnya menambahkan middleware tersebut ke App\Http\Kernel.php


semua sudah beres tinggal dipakai di dalam Controller dengan function __construct(). pilih auth atau admin sesuai dengan kebutuhan.


berikut penampakan routes-nya.


route list

 
download projectnya disini.
referensi