Tutorial Laravel Jetstream #4 : Authentication


Fika Ridaul Maulayya
I'm Fika Ridaul Maulayya, a Full-Stack Web Developer, Content Creator and CO-Founder Santri Koding. I share everything i know with Article, Screencasts and E-Books at SantriKoding.com

Halo teman-teman semuanya, pada kesempatan kali ini kita akan membahas tentang Autentication di Laravel Jetstream, di pembahasan sebelumnya kita sudah belajar banyak hal, mulai dari installasi Laravel Jetstream dan memilih opsi stack yang akan digunakan. Pada artikel ini kita semua akan belajar tentang Authentication di Jetstream bekerja.

Ketika kita memulai dengan Laravel Jetstream maka secara otomatis akan membuat sebuah scaffold untuk beberapa tampilan authentication, diantaranya adalah :

  • login
  • two factor login
  • registration
  • password reset
  • email verification

Untuk sederhanya dengan stack yang kita pilih, template yang dibuat ditulis dalam Balde dan tidak menggunakan JavaScript. Dan kita bisa dengan lebih mudah untuk melakukan kustomisasi.


Laravel Fortify

Laravel Fortify merupakan package yang digunakan untuk sistem authentication yang ada di dalam Laravel Jetstream, yang mana Fortify ini digunakan sebagai Backend-nya. Ketika kita menginstall Laravel Jetstream, maka secara otomatis akan membuat file config untuk Fortify di dalam folder config/fortify.php.

Di dalam file config ini kita dapat melakukan perubahan untuk sistem authentication ari aplikasi kita, seperti mengarahkan seorang user setelah berhasil login, menggunakan guard yang harus digunakan dan masih banyak lagi.

Disini kita juga bisa melakukan disable dan enable dari fitur-fitur di dalam Fortify seperti menonaktifkan password reset, registration, two factor login, update profile dan yang lainnya. Jadi kita bisa mengaktifkan dan menon-aktifkan fitur-fitur tersebut sesuai dengan kebutuhan.

Views

Untuk template auth dari apapun stack yang kita pilih, tampilan untuk autentication akan diletakkan di dalam folder resources/views/auth dengan menggunakan Balde template. Kita bebas menyesuaikan gaya template ini berdasarkan kebutuhan aplikasi kita.

Actions

Fitur Jetstream yang dijalankan untuk sistem authentication akan diletakkan di dalam class action dalam aplikasi kita. Contohnya App\Actions\Fortify\UpdateUserProfileInformation akan di panggil ketika seorang user meng-update profile. Class ini akan melakukan validasi, memasukkan dan memperbarui informasi dari seorang user. Jadi oleh sebab itu jika kita ingin melakukan perubahan logika atau apapun itu kita bisa melakukannya di dalam class ini.

Password Validation Rules

Saat kita melakukan create user menggunakan class App\Actions\Fortify\CreateNewUser, melakukan reset password dengan class App\Actions\Fortify\ResetUserPassword dan meng-update password dengan class App\Actions\Fortify\UpdateUserPassword. Di dalam class-class tersebut kita menggunakan Traits untuk memvalidaasi rule password dengan Traits berikut ini :

App\Actions\Fortify\PasswordValidationRules

Di dalam Traits di atas untuk validation akan menggunakan tipe objek. Objek ini memungkinkan kita dengan mudah menyesuaikan requirement password untuk aplikasi kita. Secara default, aturan tersebut membutuhkan kata sandi yang panjangnya setidaknya 8 karakter. Namun, kita dapat menggunakan metode berikut untuk menyesuaikan persyaratan kata sandi yang bisa kita sesuaikan sendiri :

(new Password)->length(10)

// Require at least one uppercase character...
(new Password)->requireUppercase()

// Require at least one numeric character...
(new Password)->requireNumeric()

Email Verification

Dengan Laravel Jetstream kita akan mendapatkan sebuah fitur yang sangat penting sekali, dimana ketika seorang user melakukan registrasi maka user tersebut harus melakukan verifikasi email. Jika di Laravel sebelumnya fitur ini belum tersedia, jadi kita harus manual membuatnya sendiri.

Akan tetapi secara default di Jetstream fitur email verifikasi ini dinonaktifkan, dan untuk mengaktifkan fitur ini sangatlah mudah sekali kita hanya perlu un-komen 1 baris kode saja. Silahkan buka file config/fortify.php dan kurang lebih seperti berikut ini :

'features' => [
  Features::registration(),
  Features::resetPasswords(),
  // Features::emailVerification(),
  Features::updateProfileInformation(),
  Features::updatePasswords(),
  Features::twoFactorAuthentication(),
],

Dan silahkan un-komen kodenya sehinagga menjadi seperti berikut ini :

'features' => [
  Features::registration(),
  Features::resetPasswords(),
  Features::emailVerification(),
  Features::updateProfileInformation(),
  Features::updatePasswords(),
  Features::twoFactorAuthentication(),
],

Kemudian, selanjutnya silahkan buka model user di App\Models\User dan tambahkan implements MustVerifyEmail di dalam class User. Kurang lebih seperti berikut ini :

class User extends Authenticatable implements MustVerifyEmail
{
    ...
}

Dan sekarang jika kita melakukan registrasi, maka user tersebut harus melakukan verifikasi email yang telah dikirm. Bagaimana mudah bukan dengan Laravel Jetstream yang penuh akan fitur-fitur keren. Di artikel selanjutnya kita akan membahas tentang profile management di dalam Laravel Jetstream mulai dari dasar.


Fika Ridaul Maulayya
I'm Fika Ridaul Maulayya, a Full-Stack Web Developer, Content Creator and CO-Founder Santri Koding. I share everything i know with Article, Screencasts and E-Books at SantriKoding.com
KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami

KOMENTAR