
Memasang Gembok pada Pintu Server-Mu
Membuat REST API itu mudah, tapi membiarkan *endpoint* API-mu terbuka bebas di internet adalah bunuh diri. Siapapun bisa mengirim *request* POST untuk memasukkan data sampah, atau *request* DELETE untuk menghapus datamu. Oleh karena itu, kita butuh API Authentication.
Jika kamu membuka Postman atau Insomnia, kamu akan melihat banyak opsi di tab Authorization. Berikut adalah 3 tipe yang paling umum dipakai di industri.
1. API Key (Paling Sederhana)
Sistem ini memberikan klien sebuah teks acak panjang (misal: api_live_9a8b7c6d5e4f...).
- Cara Kerja: Klien mengirimkan kunci ini di dalam URL (Query Parameter seperti
?key=...) atau diselipkan di dalam Header HTTP (x-api-key). Server mencocokkan kunci tersebut dengan databasenya. - Kelebihan: Sangat mudah diimplementasikan. Sangat cocok untuk API *Server-to-Server* (B2B) atau API publik terbatas seperti Google Maps atau layanan Cuaca.
- Kelemahan: Jika ditaruh di URL, *key* ini gampang bocor dari *history* browser. Tidak cocok untuk aplikasi *frontend* di mana satu kunci dipakai oleh banyak user secara langsung.
2. Basic Auth (Model Klasik)
Ini adalah standar keamanan paling tua di internet.
- Cara Kerja: Klien harus mengirimkan kata Username dan Password yang digabungkan dengan titik dua (
username:password), lalu di-encode (disamarkan) menjadi teks Base64 yang aneh. Teks itu dikirim melalui Header:Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ= - Kelebihan: Didukung oleh semua bahasa pemrograman sejak tahun 90-an tanpa butuh *library* tambahan.
- Kelemahan: Sangat berbahaya jika digunakan di jalur HTTP biasa (tanpa HTTPS) karena enkripsi Base64 sangat gampang dibalik (di-decode) oleh *hacker* untuk mendapatkan *password* aslinya.
3. Bearer Token (Raja Era Modern / JWT)
Istilah "Bearer" berasal dari bahasa Inggris yang berarti "Si Pembawa".
- Cara Kerja: Klien harus Login dulu (biasanya kirim email dan password via POST). Jika benar, server memberikan Token JWT rahasia. Klien kemudian membawa token tersebut di setiap *request* selanjutnya melalui Header:
Authorization: Bearer eyJhbGciOiJIUzI1... - Kelebihan: 100% Stateless! Server tidak perlu capek mengecek database setiap kali klien meminta data, cukup memverifikasi stempel digital di token tersebut. Sangat aman dan cocok untuk *Frontend React/Vue* dan *Mobile App*.
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates