Tutorial Jetstream Laravel #2 : Authentication

Pada tutorial ini kita akan belajar tentang Authentication di Jetstream, 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 Blade dan tidak menggunakan JavaScript, 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, 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 dari 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 Blade 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 dipanggil 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.

Baca Juga  Tutorial ReactJS #2 : Memahami Struktur Direktori Project React

 

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

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

Akan tetapi secara default di Jetstream fitur email verifikasi ini dinonaktifkan, untuk mengaktifkan fitur ini sangatlah mudah, 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(),
],

Kemudian silahkan un-komen kodenya sehingga menjadi seperti berikut ini :

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

Selanjutnya silahkan buka model user di App\Models\User dan tambahkan implements MustVerifyEmail di dalam class User, menjadi seperti berikut ini :

class User extends Authenticatable implements MustVerifyEmail
{
    ...
}

Sekarang jika kita melakukan registrasi, maka user tersebut harus melakukan verifikasi email yang telah dikirim.

 

Demikian tutorial Jetstream Laravel pada bagian Authentication. Di artikel selanjutnya kita akan membahas tentang profile management di dalam Laravel Jetstream.

Baca Juga  Tutorial ReactJS #1 : Pengenalan Dasar ReactJS

Semoga bermanfaat, jika ada pertanyaan silahkan tulis di kolom komentar.

Related Post

Be the first to comment

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy