Oksa Satya.

6 April 2026 · 7 menit baca

Autentikasi JWT yang Aman: Refresh Rotation, Reuse Detection, dan Cookie HttpOnly

KeamananAuthJWTGo

JWT sering diimplementasikan dengan cara yang justru menurunkan keamanan: token berumur panjang disimpan di localStorage, tanpa cara mencabutnya. Ini pola autentikasi yang saya pakai supaya nyaman dipakai tapi tetap bisa dipertanggungjawabkan saat token bocor.

Access pendek, refresh yang berputar

Access token dibuat berumur pendek supaya jendela penyalahgunaannya kecil. Refresh token berumur lebih panjang dan dipakai untuk mendapatkan access baru — tapi setiap kali dipakai, ia diputar: refresh lama dibatalkan, yang baru diterbitkan.

Rotation ini yang memberi kemampuan mendeteksi pencurian. Token yang seharusnya sudah tidak berlaku tapi tiba-tiba dipakai lagi adalah sinyal jelas ada yang tidak beres.

Reuse detection: sinyal token dicuri

Kalau refresh token yang sudah diputar (jadi tidak valid) muncul lagi, kemungkinan besar ada dua pihak memegang token yang sama — pengguna asli dan pencuri. Respons yang benar: batalkan seluruh rantai sesi itu, paksa login ulang.

Tanpa rotation + reuse detection, token yang dicuri bisa dipakai diam-diam sampai kedaluwarsa alami. Dengan keduanya, pencurian meninggalkan jejak yang bisa ditindak otomatis.

Simpan di cookie HttpOnly, bukan localStorage

Token di localStorage bisa dibaca skrip apa pun di halaman — satu celah XSS dan token melayang. Cookie HttpOnly + Secure + SameSite tidak bisa dibaca JavaScript, memindahkan permukaan serangan menjauh dari script injection.

Konsekuensinya perlu perlindungan CSRF (mis. double-submit token), tapi itu pertukaran yang jauh lebih baik daripada membiarkan token terekspos ke setiap skrip pihak ketiga.

Ringkasan

Auth JWT yang aman bukan soal library, tapi pola: access pendek, refresh yang berputar, deteksi penggunaan ulang untuk menangkap pencurian, dan penyimpanan di cookie HttpOnly dengan perlindungan CSRF. Nyaman dipakai, dan bisa dicabut saat perlu.

Sedang membangun sistem serupa?

Saya menerima proyek dan konsultasi teknis seputar sistem bisnis.