Membuat Multi Auth: Aplikasi Pendataan Warga Desa dengan Laravel 7 - Tutorial 04


Membuat Multi Auth: Aplikasi Pendataan Warga Desa dengan Laravel 7

Halo! Pada tutorial ke-empat ini, kita akan membahas bagaimana caranya membuat multi auth di Laravel. 

Berhubung sejak Laravel 6 perintah make:auth sudah tidak ada, maka dari itu kita harus menginstall package laravel/ui untuk membuat auth scaffold. Buka terminal atau command line, lalu gunakan perintah di bawah ini. Tunggu sampai proses selesai.
Selanjutnya, kita akan membuat model dan migration untuk Admin. Silahkan gunakan perintah di bawah ini.
Buka folder database/migrations, lalu klik pada admin migration. Sesuaikan kode programnya seperti di bawah ini.
Kemudian, buka folder app, klik pada Admin.php. Ini merupakan model untuk Admin. Sesuaikan kode programnya seperti di bawah ini.  
Bisa diperhatikan, pada model Admin terdapat protected $guard = 'admin'. Di sini kita akan membuatnya. Silahkan buka file config/auth.php. Sesuaikan seperti di bawah ini.

Membuat sebuah guard baru dengan nama admin.
Membuat sebuah provider baru dengan nama admins.
Selanjutnya, kita akan membuat route untuk admin login. Silahkan buka file yang ada di routes/web.php. Kemudian buat routenya seperti di bawah ini.
Supaya halaman login untuk Admin bisa tampil, kita harus membuat sebuah controller. Gunakan perintah di bawah ini untuk membuat admin controller. Controller ini akan tercipta di dalam folder app/Htpp/Controllers/Auth.
Buka file AdminAuthController, lalu sesuaikan kode programnya seperti di bawah ini. Sederhananya, fungsi getLogin berguna untuk menampilkan halaman login admin, postLogin untuk melakukan validasi terhadap email dan password yang disubmit dan postLogout untuk melakukan logout.
Selanjutnya, kita akan membuat tampilan untuk login admin. Tampilan ini berupa file HTML. Buat sebuah folder baru bernama admin di dalam folder views/auth. Lalu buat sebuah file bernama login.blade.php

Untuk saat ini kita akan menggunakan form login standar bootstrap yang sudah disediakan Laravel. Nantinya, kita akan menggunakan template untuk mempercantik tampilannya. Pada login.blade.php tadi, sesuaikan menjadi seperti ini.
Kemudian, kita juga harus mengurus redirect untuk admin. Tentunya, kita mau halaman admin hanya bisa diakses oleh admin saja. Buka file app/Exceptions/Handler.php, lalu tambahkan kode program di bawah ini.
Jangan lupa import atau use beberapa baris kode berikut di Handler.php.
Hal terakhir yang perlu kita lakukan adalah membuat admin dengan menggunakan seeder. Untuk membuatnya, silahkan gunakan perintah di bawah ini.
Setelah seeder untuk Admin dibuat, buka file database/seeds/AdminTableSeeder.php. Lalu sesuaikan seperti di bawah ini.
Sebelum melakukan seeder, kita harus melakukan migrate terlebih dahulu untuk table admin yang baru saja kita buat. Gunakan perintah di bawah ini untuk melakukan kedua hal tersebut. Kalian juga harus memanggil AdminTableSeeder.php di dalam DatabaseSeeder.php. Jika kalian lupa bagaimana caranya, silahkan baca kembali Membuat Seeder: Aplikasi Pendataan Warga Desa dengan Laravel 7 - Tutorial 03.
Jika semuanya berjalan dengan baik, maka akan tampil seperti ini.

Melakukan Migrate dan Membuat Seeder untuk Admin

Tabel Admin Sudah ada di Database

Halaman Login untuk Admin

Halaman login di atas sudah berfungsi dan siap untuk dicoba. Jika kalian ingin logout, silahkan tambahkan admin/logout pada url.

Selamat! Sampai saat ini kita sudah berhasil membuat multi auth. Selanjutnya kita akan melakukan templating dan mempercantik UI pada bagian user. Di sini kita akan menggunakan sebuah template gratis bernama Stisla.

Demikian post kali ini, semoga bermanfaat!

Post a Comment

3 Comments

  1. bang saya ada error saat login, isinya begini:
    Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\Admin given, called in C:\xampp\htdocs\pendataan-warga-desa\vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php on line 385

    padahal codingannya sdh sama percis seperti yg di atas

    ReplyDelete
    Replies
    1. Apakah sudah menggunakan use Illuminate\Foundation\Auth\User as Authenticatable; pada model Admin? Jangan lupa untuk extends Authenticatable pada model tersebut. JIka seandainya masih error, bisa melihat projek yang sudah jadi di sini: https://gitlab.com/rizkyramadhan28/pendataan-warga-desa

      Delete
  2. bang, saya clone dari git hub. lalu udah ngikutin dari github instalasinya. saya kok ga bisa masuk admin ya? padahal email dan password nya ngambil dari database,, mohon sarannya bang, terimakasih :)

    ReplyDelete