
Pendahuluan
Bayangin lagi ngerjain fitur sederhana, tapi tim mobile minta endpoint autentikasi yang aman dan cepat tanpa harus setup manual dari nol. Banyak dari kita sering terjebak buat custom sistem login sendiri yang malah jadi lubang keamanan. Laravel Breeze sebenarnya punya fitur API mode yang sering terlewatkan padahal sangat membantu mempercepat workflow integrasi antara backend Laravel dan aplikasi mobile.
Tips & Best Practices
Di banyak project, biasanya saya mulai dari menonaktifkan fitur view karena fokus kita murni di API. Gunakan flag --api saat instalasi biar struktur file lebih bersih. Kedua, selalu pisahkan file route API agar tidak bercampur dengan web route, ini ngebantu banget pas lagi tracking bug di aplikasi skala menengah. Terakhir, jangan lupa buat selalu nge-set 'Accept: application/json' di header request mobile apps supaya Laravel nggak redirect user ke halaman login saat token kadaluwarsa, melainkan ngasih response 401 yang elegan.
Contoh Kode
Berikut cara setup singkat buat nerbitin token santum setelah user login:
// AuthController.php
public function login(Request $request) {
$request->validate(['email' => 'required|email', 'password' => 'required']);
if (!Auth::attempt($request->only('email', 'password'))) {
return response()->json(['message' => 'Login gagal, cek lagi bro!'], 401);
}
return response()->json([
'token' => $request->user()->createToken('mobile_app')->plainTextToken
]);
}Variasi Implementasi
Ada dua jalur yang bisa dipilih: menggunakan Laravel Sanctum yang default di Breeze untuk aplikasi mobile simpel, atau pindah ke Passport kalau project kamu butuh implementasi OAuth2 yang kompleks dan terstandarisasi. Sanctum menang di kecepatan setup, sedangkan Passport lebih cocok kalau kamu mau buka API untuk pihak ketiga.
Kesalahan Umum
Pertama, lupa nge-set environment 'SESSION_DOMAIN' di file .env yang bikin cookie gagal ke-set. Kedua, menganggap Breeze API sudah otomatis handle refresh token padahal harus dikonfigurasi secara manual. Ketiga, membiarkan route default Breeze tetap aktif padahal nggak kepakai, ini bisa jadi celah. Keempat, salah paham soal penggunaan middleware 'auth:sanctum' yang sering bikin akses ditolak karena salah naruh urutan middleware. Terakhir, hardcoding domain lokal di client mobile yang bikin aplikasi error saat masuk ke production.
Ringkasan
Integrasi Breeze untuk API itu sebenarnya cuma masalah membiasakan diri sama pola Laravel yang sudah rapi. Begitu kamu paham alur Sanctum, workflow ngoding jadi jauh lebih santai karena banyak hal sudah di-handle oleh framework. Tetap eksplorasi dan jangan takut buat bongkar dokumentasinya kalau ada yang aneh di response JSON kamu.
Komentar
Posting Komentar