Cara Membuat Login Multi User Menggunakan Laravel 9
Selamat malam sobat Syarif soden sekalian semoga dalam keadaan sehat ya, pada kesempatan kali ini saya akan menuliskan cara membuat login multi user menggunakan laravel 9, oke sebelum mulai sobat sekalian menyiapkan menyiapkan kopi, melemeskan badan, siapkan udud bagi yang udud dan berada ditempat yang mendukung.
Langsung saja kita mulai tutorialnya sob :
Cara Membuat Login Multi User Menggunakan Laravel 9
1. Pertama kalian perlu meng Install Laravel, disini saya menginstall laravel menggunakan composer, sebenarnya banyak cara untuk menginstall laravel, untuk mengetahuai cara lebih lanjut tentang opsi lain instalasi laravel kalian bisa mengunjungi website laravel dan membaca dokumentasinya, btw disini saya menggunakan laravel versi 9 dan tentunya si versi 9 ini memerlukan PHP minimal versi 8.0 jika PHP kalian versinya dibawah 8 kalian bisa menyesuaikan versi laravelnya dengan PHP versi kalian.
Untuk project laravel kali ini saya menggunakan nama login sebagai nama project kita, kalian bisa ganti nama project sesuai dengan keinginan.
2. Selanjutnya masukan folder kita ke dalam text editor kesayangan kalian, disini saya pakai visual studio code. jika sudah buka file .env dan atur database sesuai dengan punya sokalian.
Perhatikan :
DB_CONNECTION : Adalah jenis Database kalian, disini secara default mysql, jika sobs menggunakan postgresql, oracle atau lainnya silahkan sesuaikan.
DB_HOST : alamat host database.
DB_PORT : default mysql atau mariadb adalah 3306
DB_DATABASE : nama database yang akan kita gunakan.
DB_USERNAME : user database disini default root untuk mysql dan mariadb.
DB_PASSWORD : password user database, disini kosong karena default password dari mariadb di XAMPP adalah kosong.
Jika sudah buat database sesuaikan dengan DB_DATABASE ya.
3. Selanjutnya kita buat Role model dengan file migrasinya. yaitu dengan mengetikan :
selanjutnya buka file migrasi di folder database/migrations cari file yang berisikan kata roles kenapa roles kan sebelumnya kita buat namanya Role ?? disini laravel otomatis menggenerate nama model kita ke dalam nama jamak.
ubah menjadi seperti dibawah ini :
selanjutnya buka file migrasi users
ubah menjadi seperti dibawah ini :
4. Next kita buka file app/Models/Role.php dan ubah kodenya menjadi seperti ini:
5. buka file app/Models/User.php dan ubah kodenya menjadi seperti ini:
6. Oke next buka file database/factories/UserFactory.php ubah menjadi seperti dibawah ini :
7. selanjutnya kita buat data dumy dengan membuka file database/seeders/DatabaseSeeder.php dan buat seperti dibawah ini :
disini kita akan buat dua buah role yaitu superadmin dengan id : 1 dan pegawai dengan id : 2. dan jumlah user adalah 5 buah dengan role_id acak 1 atau 2.
8. Oke langsung saja kita migrate database kita dan kita seeding dengan mengetikan perintah :
cek database, jika berhasil migrasi maka table hasil migrasi sudah ada.
cek table roles dan users.
9. sekarang kita akan membuat tampilan login, silahkan buat folder layouts didalam folder resources/views.
buat file main.blade.php didalam folder layouts. tambahkan baris kode seperti dibawah ini :
disini kita menggunakan starter kit template bootstrap 5, @yield('contents') disini lah kita membuat section konten kita, template ini berfungsi parent dari template lain pada aplikasi kita.
buat folder auth didalam folder resources/views dan buat file login.blade.php didalamnya folder auth.
tambahkan kode berikut didalam file login.blade.php :
Saya anggap kalian sudah paham dengan template blade, jika kurang paham silahkan mencari refrensi ditempat lain atau mambaca dokumentasi yang disediakan laravel.
10. tahap selajutnya kita buat AuthController, controller berfungsi untuk menghandle proses autentifikasi seperti login dan logout.
silahkan buka file AuthController didalam folder app/Http/Controllers lalu isi file sehingga akan menjadi seperti dibawah ini :
11. Next kita akan buat dua buah controller untuk superadmin dan pegawai.
nah selanjutnya controller pegawai
kita buka file SuperadminController di folder app/Http/Controllers, dan ubah menjadi seperti dibawah ini :
Buka PegawaiController, dan ubah menjadi seperti dibawah ini :
13. Next, kita tentukan redirect sesudah user login, artinya jika user sudah login maka si user itu tidak bisa mengakses url login atau halaman login kembali, pengaturan ini ada di app/Providers/RouteServiceProvider.php, silahkan cari const HOME ubah seperti dibawah ini :
artinya jika user sudah melakukan login dan ingin akses kembali url login maka akan dialihkan ke url "/redirect" dan diurl redirect ini akan diperiksa apakah user yang sudah login superadmin atau pegawai, jika superadmin maka akan di redirect ke url "/superadmin" dan jika pegawai maka akan di redirect ke url "/pegawai". oleh karena itu kita buat controller yang berfungsi sebagai pengecekan terlebih dahulu.
jika sudah, buka RedirectController, dan sesuaikan seperti dibawah ini :
14. Oke sekarang kita buat masing-masing view untuk Superadmin dan Pegawai. pertama buat folder superadmin dan pegawai didalam folder resources/views, dan dimasing-masing folder superadmin dan pegawai buat file dengan nama index.blade.php. jika sudah masukan kode dibawah ini kedalam file index.blade.php:
dan buka file index.blade.php di folder pegawai :
15. berikutnya kita buat sebuah middleware
maka sebuah file CheckRole.php akan dibuat didalam folder app/Http/Middleware, silahkan edit file CheckRole.php
daftar middleware kita ke app/Http/Kernel.php sehingga menjadi seperti dibawah ini :
16. Tahap akhir adalah kita tambahkan routingan aplikasi kita, lokasinya di routes/web.php :
17. and finally silahkan jalankan aplikasi kita :
sobat-sobat bisa lihat table user
silahkan login dengan email, dan untuk passwornya adalalah password karena kita menggunakan seeder. coba login dengan user role_id 1 untuk superadmin dan user role_id 2 untuk pegawai.
tampilan setelah login
Aplikasi kita selesai.
saya sadar sobat sekalian bahwa tulisan ini masih banyak kekurangan, jika kalian mengalami error maka kalian bisa googling atau bertanya lewat kolom komentar.
sekian dan terimakasih.
edit file CheckRole.php kosong
BalasHapusoke minta di refresh ternyata min
Hapus