← Semua pembelajaran / Laravel Nol → Enterprise
Fase 4 · Autentikasi & Keamanan

Starter kit

Starter kit menghemat satu minggu kerja yang tidak menambah nilai apa pun bagi produkmu. Yang perlu diputuskan bukan "pakai atau tidak", melainkan varian mana — karena pilihan itu menentukan arsitektur frontend seterusnya.

Sumber asli laravel.com Resmi Rangkuman ~4 menit baca

Intisari

  • Menyediakan login, registrasi, reset password, verifikasi email, dan profil — lengkap dengan tesnya.
  • Pilihannya mengikuti frontend: Livewire, React, atau Vue (dua terakhir lewat Inertia).
  • Kodenya di-publish ke proyekmu, bukan disembunyikan di vendor/ — bebas kamu ubah.
  • Pasang di awal proyek. Memasangnya setelah ada kode akan menimpa berkas.
  • Butuh alur auth tanpa tampilan bawaan? Pakai Fortify: logikanya saja, tampilannya kamu sendiri.

Memasang

laravel new portal          # installer akan menanyakan starter kit-nya

# atau pada proyek yang baru dibuat dan masih kosong
php artisan install:livewire
php artisan install:react
php artisan install:vue
VarianCara kerjaPilih kalau
LivewireKomponen PHP; interaksi lewat permintaan ke serverTim menguasai PHP, ingin interaktif tanpa membangun SPA
React (Inertia)Komponen React, routing tetap di LaravelSudah ada keahlian React, UI-nya kaya
Vue (Inertia)Sama, dengan VueSama, dengan Vue
Blade sajaTanpa starter kit; auth dipasang sendiri lewat FortifyHalaman yang didominasi konten dan harus mudah di-cache

Pilihan ini menentukan bagaimana halamanmu bisa di-cache. Halaman Blade murni bisa disajikan seluruhnya dari CDN dan tidak pernah menyentuh PHP. Halaman Livewire dan Inertia selalu memerlukan permintaan ke server untuk dirender. Untuk aplikasi dengan sedikit halaman publik itu tidak masalah; untuk situs yang didominasi lalu lintas pembaca anonim, perbedaannya besar — dan dibahas lagi di Fase 7 dan Fase 9.

Apa yang kamu dapat

app/Http/Controllers/Auth/        controller login, registrasi, reset, verifikasi
app/Http/Requests/Auth/           form request yang sudah divalidasi dengan benar
resources/views/                  halaman auth + layout + halaman profil
routes/auth.php                   seluruh rute autentikasi
tests/Feature/Auth/               tes untuk setiap alur di atas

Baris terakhir itu yang paling sering diremehkan. Kamu tidak hanya mendapat fitur, tapi juga suite tes yang memastikan alur autentikasimu tetap benar setelah kamu mengubah-ubahnya. Menulis tes itu dari nol biasanya makan waktu lebih lama daripada menulis fiturnya.

Fortify: logika tanpa tampilan

composer require laravel/fortify
php artisan fortify:install
php artisan migrate
// app/Providers/FortifyServiceProvider.php
Fortify::loginView(fn () => view('auth.login'));       // tampilanmu sendiri

Fortify::authenticateUsing(function (Request $request) {
    $user = User::where('email', $request->email)->first();

    return $user && Hash::check($request->password, $user->password) && $user->aktif
        ? $user
        : null;
});

Fortify menyediakan seluruh alur backend — termasuk 2FA, konfirmasi password, dan pembatasan laju login — tanpa satu pun berkas tampilan. Ini pilihan yang tepat kalau desainmu sudah jadi, atau kalau frontend-nya terpisah.

Pasang di awal, bukan di tengah. Perintah install:* menimpa berkas seperti routes/web.php, layout Blade, dan konfigurasi Vite. Menjalankannya pada proyek yang sudah berisi kode berarti kamu akan menghabiskan sore menyelesaikan konflik. Kalau memang sudah terlanjur, jalankan di cabang git terpisah dan gabungkan manual.

Setelah terpasang, yang harus kamu sesuaikan

  1. Nyalakan verifikasi email kalau relevan: User implements MustVerifyEmail, lalu pasang middleware verified.
  2. Sesuaikan Password::defaults() di AppServiceProvider — panjang minimum, dan pemeriksaan kebocoran.
  3. Periksa pembatasan laju pada rute login (materi rate limiting di fase ini).
  4. Terjemahkan pesan bawaan ke bahasa Indonesia lewat lang/id/.
  5. Jalankan php artisan test — semua tes bawaan harus hijau sebelum kamu mengubah apa pun.

Latihan: buat proyek baru dengan starter kit Livewire, jalankan php artisan test, dan baca satu berkas tes di tests/Feature/Auth/. Lalu ubah Password::defaults() menjadi minimal 12 karakter dan pastikan tes registrasi masih hijau — atau perbaiki tesnya kalau tidak.

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.