Langsung ke konten utama

Panduan Praktis Implementasi Laravel Sanctum untuk API Authentication

Pendahuluan

Bayangin lagi ngerjain fitur sederhana, tapi kebingungan milih cara paling efisien buat nge-handle login user di API tanpa harus ribet sama konfigurasi OAuth yang kompleks. Laravel Sanctum itu jawaban yang sering banget saya pakai pas project butuh ringan, aman, dan langsung jalan. Kebanyakan dari kita sering terjebak di kerumitan implementasi session atau token manual yang sebenernya udah disediain solusinya secara elegan sama Sanctum.

Tips & Best Practices

Di banyak project, biasanya saya mulai dari memisahkan route API dengan route web agar token handling nggak tercampur sama session biasa. Kedua, saya selalu biasakan pakai Abilities buat ngebatesin apa yang boleh diakses user setelah login, jadi nggak semua endpoint bisa diakses admin user biasa. Ketiga, jangan pernah lupa buat nge-set token expiration di config agar aplikasi kita punya lapis keamanan tambahan kalau sewaktu-waktu ada token yang bocor.

Contoh Kode

Saat user mau login dan butuh token, biasanya saya pakai logic seperti ini di controller:

public function login(Request $request) {
    $user = User::where('email', $request->email)->first();
    if (!$user || !Hash::check($request->password, $user->password)) {
        return response()->json(['message' => 'Credentials salah'], 401);
    }
    $token = $user->createToken('my-app-token')->plainTextToken;
    return response()->json(['token' => $token]);
}

Variasi Implementasi

Kalau aplikasinya cuma buat SPA (Single Page Application), kamu bisa pakai Sanctum via Stateful Authentication dengan cookie, ini lebih gampang karena user nggak perlu ribet ngirim header Authorization. Tapi kalau project-nya buat Mobile App atau integrasi pihak ketiga, pendekatan API Token jauh lebih masuk akal dan fleksibel buat di-manage lewat database.

Kesalahan Umum

  • Lupa nambahin trait HasApiTokens di model User, alhasil method token jadi error.
  • Taruh route yang butuh proteksi di dalam file routes/web.php padahal harusnya di routes/api.php.
  • Gagal nge-handle response error saat token kadaluwarsa, user jadi bingung kenapa datanya nggak muncul.
  • Simpen token di localStorage browser tanpa pertimbangan risiko XSS yang sebenernya bisa dihindari.
  • Terlalu banyak ngasih abilities ke user padahal mereka cuma butuh akses read-only.

Ringkasan

Sejujurnya, pakai Sanctum itu bikin hidup developer jauh lebih tenang karena kita nggak perlu reinvent the wheel tiap kali bangun API. Kuncinya ada di pemahaman kapan harus pakai session dan kapan harus pakai token. Begitu flow-nya dapet, sisanya tinggal fokus ke logic bisnis aplikasi kamu. Selamat ngoding!

Komentar

Postingan populer dari blog ini

Fungsi lain tombol penerima panggilan di headset

Kegunaan tombol yang berada di headset utamanya adalah untuk menerima panggilan dan pause panggilan. Dan headset itu sendiri, kadang juga digunakan untuk mendengarkan music, digunakan bersama saat main game, supaya suara yang dikeluarkan oleh gadget tidak terlalu keras sehingga mengurangi beban gadget. Dengan mengurangi beban gadget, ada beberapa yang beranggapan kalau itu akan menghemat batere.

Cara Reset Password Database MySQL Menggunakan Laragon

Cara Reset Password Database MySQL Menggunakan Laragon Laragon adalah salah satu lingkungan pengembangan lokal (local development environment) yang populer di antara para pengembang web. Dalam beberapa kasus, mungkin kita perlu mereset password database MySQL pada Laragon jika lupa password atau untuk alasan keamanan tertentu. Berikut adalah langkah-langkah yang dapat kita ikuti untuk melakukan reset password database MySQL menggunakan Laragon:

Apa Itu R dan L di Headset? Ini Dia Perbedaan dan Fungsinya yang Perlu Anda Ketahui

Arti R dan L di Headset: Apa Perbedaannya? Headset adalah alat yang digunakan untuk mendengarkan suara dari sumber audio seperti ponsel, komputer, atau pemutar musik. Headset biasanya terdiri dari dua bagian, yaitu earphone yang dimasukkan ke dalam telinga dan mikrofon yang digunakan untuk berbicara. Pada earphone, kita sering melihat ada tulisan R dan L. Apa arti dan perbedaan dari kedua huruf tersebut?