laravel multi auth

Membuat Level Akses User di Laravel 5.5

Hallo sahabat ONPHPID, pada kesempatan ini kita akan belajar Membuat Level Akses User di Laravel 5.5 dengan kata lain Tutorial Membuat MultiAuth Login pada Laravel 5.5. Kita akan membuat secara sederhana, nantinya teman-teman bisa ngembangin sesuai kebutuhan Aplikasi yang dibuat. Pada Tutorial ini tidak akan dibahas secara detail basic dari Laravel itu sendiri. Jika teman-teman baru dalam Belajar Laravel, teman-teman bisa membaca artikel sebelumnya yaitu Belajar Laravel : Berkenalan dengan Laravel 5.3 untuk Pemula.

Dengan asumsi kita sudah menginstall project laravel, saya jelaskan secara singkat apa yang akan dibuat pada tutorial ini. Jadi kita akan Membuat Level Akses User di Laravel 5.5 , setiap user yang register defaultnya tidak memiliki Role, atau level akses user. Maka setelah register di redirect ke page home, di halaman ini ada button untuk upgrade. Misal saja aplikasi kita menyediakan fitur upgrade level user agar mendapatkan lebih dari user biasa. Tentunya button akan muncul jika user telah memenuhi yang di syaratkan. User yang sudah melakukan upgrade akan di bawa ke page khusus Member. Sedangkan Admin dapat melihat semua User yang belum upgrade level. Idenya sendiri seperti itu.

Pertama kita buat Model UserRole dan Role beserta migrations baru dengan cara menjalankan perintah, tapi sebelumnya kita jalanin php artisan make:auth untuk memakai authentikasi bawaan Laravel.

[pre]php artisan make:model Role -m[/pre]

dan

[pre]php artisan make:model UserRole -m[/pre]

Role.php

[gists]https://gist.github.com/wichaksono/24c46597d470c1e8794eceb87cb0dbf8[/gists]

UserRole.php

[gists]https://gist.github.com/wichaksono/24c46597d470c1e8794eceb87cb0dbf8[/gists]

2017_09_18_130600_create_roles_table.php

[gists]https://gist.github.com/wichaksono/f6cbd36e229cf2654514cd8558fca3d8[/gists]

2017_09_18_125450_create_user_roles_table.php

[gists]https://gist.github.com/wichaksono/b7532e4e83f6bd3f11f71469c23a6df3[/gists]

Lalu kita melakukan sedikit perubahan pada Model User, dengan kata lain kita membuat method yang akan menangani proses upgrade user. Seperti di bawah ini:

User.php

[gists]https://gist.github.com/wichaksono/afa84b461285bf735ecaa207f4358463[/gists]

Kita buat middleware dengan nama RoleMiddleware tujuannya untuk menghandle user, apakah user yang sedang login memiliki role atau tidak, dan untuk mengecek apakah user sebagai admin atau member. Caranya ketikan perintah di bawah ini pada command promt.

[pre]php artisan make:middleware RoleMiddleware[/pre]

RoleMiddleware.php

[gists]https://gist.github.com/wichaksono/f47bc3b960bae95ad6526e0137a66f49[/gists]

dengan middleware di atas, user yang belum upgrade tidak dapat mengakses halaman member, dan member tidak dapat mengakses halaman admin. Daftarkan dulu middlewarenya di file kernel.php, lihat contoh di bawah:

[gists]https://gist.github.com/wichaksono/1fc6c0f8a4cbdfa83c0b838ef6396f99[/gists]

Kita buat dulu database kemudian migrate. Jika belum paham caranya bisa membaca artikel ini. Jangan lupa mengisi table roles dengan data seperti gambar di bawah ini:

tabel roles

buat satu user dengan cara register, kemudian kita beri hak akses sebagai admin dengan cara langsung mengisi tabel role_user seperti di bawah ini:

tabel user roles

Kita buat Routing baru di file web.php

web.php

[gists]https://gist.github.com/wichaksono/518944c33a4296ebe3198c1c75697ab4[/gists]

pada file app.blade.php yang berada di views/layouts/ tambahkan code di bawah ini tepat di atas penutup body, jadi seperti ini:

[gists]https://gist.github.com/wichaksono/ceb922235e49024f5aea6a6c6827dc63[/gists]

lalu,buat 2 file baru di views masing-masing dengan nama member.blade.php dan admin.blade.php

member.blade.php

[gists]https://gist.github.com/wichaksono/1c90aecf62700fae65e12323657cf7f0[/gists]

admin.blade.php

[gists]https://gist.github.com/wichaksono/78a883b644d1f2b25eae3aacb3262c82[/gists]

kemudian file home.blade.php kita ubah menjadi seperti di bawah ini:

home.blade.php

[gists]https://gist.github.com/wichaksono/90bd45034ffa6bb52aa04954730d53fd[/gists]

sekarang kita coba register user baru, maka akan di redirect ke page home, seperti gambar di bawah ini:

page home
Home Page

pada gambar di atas, terdapat button upgrade, bila kita klik maka akan mengirim data melalui ajax dan jika berhasil akan di redirect ke page member seperti gambar di bawah ini:

page member
Member Page

dan tabel role_user bertambah datanya, yang menyatakan bahwa user telah memiliki role.

new tabel roles

sedangkan jika user login sebagai admin, maka akan masuk ke page admin dan dapat melihat semua user yang belum upgrade. lihat gambar di bawah:

Admin Page Laravel
Admin Page

NOTE :

Jangan lupa merubah property protected $redirectTo = '/home'; pada file LoginController.php menjadi protected $redirectTo = '/admin';

Ok, teman-teman…

Saya rasa sudah terlalu panjang artikel ini, semoga bermanfaat ya.

Baca Juga : Cara Menggunakan Composer di Project PHP

Cek videonya di bawah ini :

Sekian dulu tutorial Membuat Level Akses User di Laravel 5.5. Jika ada hal yang kurang jelas atau ingin ditanyakan dapat melalui komentar. JANGAN LUPA like FANSPAGE ONPHPID untuk update informasi dan Subscribe Channel ONPHPID Tutorial. Selamat Belajar…

Scroll to Top
Scroll to Top