
Pendahuluan
Bayangin lagi ngerjain fitur sederhana, tapi tiba-tiba harus pusing mikirin cara jaga API biar nggak bisa diakses sembarangan orang. Laravel Sanctum datang sebagai penyelamat karena kita nggak perlu ribet setting OAuth2 yang berat cuma buat aplikasi SPA atau mobile sederhana. Saya sendiri sering pakai ini karena setup-nya cepat, clean, dan langsung bisa integrasi sama sistem authentikasi bawaan Laravel.
Tips & Best Practices
Di banyak project, biasanya saya selalu mulai dari membatasi akses via middleware 'auth:sanctum' langsung di route group agar nggak ada end-point yang terlupa diproteksi. Kedua, saat handle token, pastikan untuk selalu memberi nama token yang spesifik sesuai device-nya supaya user bisa revoke akses spesifik kalau hp-nya hilang. Terakhir, jangan pernah simpan plain token di database; manfaatkan sistem hashing bawaan Sanctum agar data user tetap aman kalau misal database bocor.
Contoh Kode
Biasanya saat user login, kita buat token seperti ini agar client bisa pakai aksesnya buat request berikutnya:
public function login(Request $request) {
$user = User::where('email', $request->email)->first();
if ($user && Hash::check($request->password, $user->password)) {
$token = $user->createToken('auth_token')->plainTextToken;
return response()->json(['token' => $token]);
}
}Variasi Implementasi
Ada dua jalur yang sering saya ambil. Kalau aplikasinya SPA (seperti Vue/React di subdomain yang sama), saya lebih pilih 'Stateful Authentication' karena nggak perlu handle token di header manual—cukup pakai cookie bawaan. Tapi kalau buat mobile app atau API yang konsumsi pihak ketiga, ya mau nggak mau harus pakai 'Token Authentication' supaya bisa ditempel di header Authorization.
Kesalahan Umum
Sering banget saya lihat beberapa hal ini bikin aplikasi jadi nggak aman: 1. Lupa revoke token lama saat user logout; 2. Terlalu banyak kasih izin (abilities) ke token padahal cuma butuh akses baca; 3. Nggak pernah set expiry token yang bikin sistem rentan kalau token dicuri; 4. Hardcoding secret key di file config yang harusnya masuk ke .env; 5. Pakai API untuk proses yang sebenarnya harusnya ada di sisi backend (seperti hit API pihak ketiga yang rahasia).
Ringkasan
Sanctum itu bukan sekadar tools, tapi cara kita bikin hidup lebih tenang pas nge-deploy API. Kuncinya bukan cuma soal kodenya jalan, tapi gimana kita konsisten jaga akses token itu sendiri. Habis ini, coba cek lagi project kamu, apakah sudah menerapkan best practice tadi, atau masih ada celah yang bikin was-was?
Komentar
Posting Komentar