Laravel Authentication dipergunakan untuk memproteksi halaman atau fitur dari web yang hanya diakses oleh orang tertentu yang diberikan hak. Fitur seperti ini biasanya ditemui di sistem yang memiliki fitur administrator atau sistem yang memiliki pengguna yang boleh menambahkan datanya.

Laravel membuat penerapan otentikasi sangat sederhana dan telah menyediakan berbagai fitur yang dapat dimanfaatkan tanpa perlu melakukan penambahan instalasi modul tertentu. File konfigurasi otentikasi terletak di config / auth.php, yang berisi beberapa opsi yang terdokumentasi dengan baik untuk mengubah konfigurasi dari layanan otentikasi.

Pada intinya, fasilitas otentikasi Laravel terdiri dari “guards” dan “providers”. Guards menentukan bagaimana pengguna diautentikasi untuk setiap permintaan. Misalnya, Laravel mengirim dengan guards untuk sesi dengan menggunakan penyimpanan session dan cookie.

Berikut adalah penjelasan langkah-langkah membuat authentikasi yang dapat dicoba. Perlu diperhatikan untuk berhati-hati membuat authentikasi pada project yang telah dibuat sebelumnya, karena pada proses ini Laravel akan berupaya membuat beberapa file yang namanya mungkin sama dengan file yang telah kita buat di project. Apabila pada saat muncul warning kita jawab dengan Y/Yes, maka isi file tersebut akan diganti dengan yang dibuatkan oleh Laravel, dan hasil kerja kita akan hilang. Apabila proses Authentikasi sudah pernah dibuat, bisa lansung ke bagian Membatasi Akses di bawah ini.

Membuat Fungsi Laravel Authentication

  • Gunakan perintah berikut untuk membuat sistem authentikasi pada sistem:
    $ php artisan make:auth
  • Laravel akan mencoba membuat sebuah file layouts/app.blade.php
  • Apabila file sudah ada, akan diberikan warning, pastikan isi sudah dicopy paste agar tidak hilang.
  • Untuk melanjutkan, ketik yes
Instalasi Auth pada project berhasil

Instalasi Auth pada project berhasil

Auth: Views and Layouts

  • Seperti dijelaskan sebelumnya, perintah php artisan make:auth akan membuat berbagai view yang dibutuhkan untuk proses autentikasi yang diletakkan pada direktori resources/views/auth.
  • Perintah tersebut juga akan membuat layout dasar yang diletakkan di direktori resources/views/layouts
  • Selain itu, juga akan dihasilkan sebuah file blade.php yang akan menjadi view untuk halaman depan dari website.

Instalasi Error

Setelah proses instalasi, dapat dilakukan pemeriksaan apakah instalasi berhasil atau tidak. Apabila tidak berhasil, maka akan muncul pesan error seperti terlihat pada gambar berikut ini:

Instalasi Laravel Authentication tidak berhasil

Instalasi Laravel Authentication tidak berhasil

Apabila berhasil maka pada halaman home akan terdapat menu Login dan Register seperti terlihat pada gambar berikut ini:

Instalasi Laravel Authentication berhasil

Instalasi Laravel Authentication berhasil

Berikut adalah tampilan halaman Register juga dihasilkan dari proses pembuatan Authentikasi:

Halaman Register

Halaman Register

Demikian pula akan tampil pula halaman Login yang juga dihasilkan, seperti pada tampilan berikut:

Halaman Login

Halaman Login

Pembuat situs web juga tidak perlu repot mengembangkan sendiri fitur Lupa Password karena juga telah dipersiapkan oleh Laravel seperti pada gambar berikut:

Halaman Lupa Password

Halaman Lupa Password

Membatasi Akses

  • Silahkan membuka dan melihat isi resources/views/home.blade.php
  • Edit file tersebut:
Copy to Clipboard
  • Perintah constructor ini dipergunakan untuk membatasi penggunaan controller ini.
  • Dengan perintah $this->middleware(‘auth’) maka semua isi controller hanya bisa diakses apabila user telah login.
Isi File Home Blade

Isi File Home Blade

  • Buat Constructor di Controller untuk membatasi penggunaan PostsController hanya untuk user yang terdaftar dan sudah login:
Membatasi Penggunaan Controller

Membatasi Penggunaan Controller

  • Silahkan mencoba untuk menjalankan halaman web
Tampilan pembatasan halaman

Tampilan pembatasan halaman

Membatasi tidak semua Method

Perintah sebelumnya membatasi akses ke seluruh method (function) yang ada di dalam PostsController.Bagaimana apabila ada beberapa function yang seharusnya boleh diakses oleh semua user (tidak perlu login)?. Misalnya untuk menampilkan daftar blog post dan juga detail isi blog post.

  • Tambahkan exception dengan array except
  • Misalnya pada contoh ini PostsController untuk method index (menampilkan daftar blog) dan show (menampilkan isi blog tertentu) boleh dilihat user umum, maka dapat dibuat array berikut:[“except” => [ “index”, “show” ]  ]
  • Sehingga perintah menjadi:
    $this->middleware(‘auth’, [“except” => [ “index”, “show” ] ] );
Penggunaan Except pada Authentikasi

Penggunaan Except pada Authentikasi

Blade: @auth and @guest

  • @auth digunakan untuk memeriksa apakah user telah login
  • @guest digunakan untuk user yang belum login
@guest dan @auth

@guest dan @auth

Selamat mencoba ke semua halaman web yang sudah dibuat!

Written by: SEW 20191202