Kalau kamu baru belajar bikin API (pakai Express, NestJS, atau Laravel), pas masuk materi Authentication (Login/Register), kemungkinan besar tutorial yang kamu tonton di YouTube langsung bilang:
Oke guys, kita install library
jsonwebtokenya buat bikin tokennya...
Jujur, aku dulu juga gitu. Main sikat aja. Pokoknya kalau login ya pakai JWT. Kelihatannya keren, modern, dan "stateless".
Tapi setelah belajar lebih dalam dan diskusi sama senior, aku sadar ada satu miskonsepsi besar di kalangan pemula: Menganggap JWT adalah satu-satunya cara, dan Session itu cara kuno.
Salah pilih metode autentikasi bisa bikin aplikasimu boros resource atau malah punya celah keamanan fatal. Biar nggak bingung sama istilah teknis yang njelimet, mari kita pakai analogi visual.
Ini adalah cara klasik. Bayangkan kamu datang ke resepsi pernikahan.
Setiap kali kamu mau ambil makan (request ke API), pelayan cuma liat kertas nomor meja itu, lalu lari ke penerima tamu buat konfirmasi lagi: "Nomor ini beneran tamu sah nggak?".
Kelebihannya:
Kekurangannya:
Enjoyed this article?
Sekarang bayangkan kamu mau masuk konser musik besar.
Server nggak nyimpen data apapun soal kamu setelah ngasih gelang. Server cuma percaya sama apa yang tertulis di gelang itu.
Kelebihannya:
Kekurangannya (Ini yang sering dilupain pemula!):
Jangan jadi developer yang cuma ikut-ikutan. Jadilah engineer yang paham trade-off.
Gunakan SESSION Jika:
Gunakan JWT Jika:
Berhenti menganggap JWT itu "obat segala penyakit". JWT itu keren, tapi punya risiko keamanan kalau nggak paham cara pakainya (terutama soal refresh token dan revocation).
Sebagai Backend Developer, tugas kita bukan cuma bikin fitur login jalan, tapi memastikan cara yang dipilih itu aman dan sesuai kebutuhan sistem.
#backend #auth #security #engineering-basics