Dalam aplikasi Single Page Application (SPA), ketika access token kadaluarsa (HTTP 401), sistem harus secara otomatis mencoba memperbarui token via endpoint refresh token sebelum mengulangi request awal. Jika refresh token juga kadaluarsa atau tidak valid, sistem harus melakukan auto-logout dan membersihkan state sesi.
Tugas Anda adalah membuat middleware/handler Express untuk endpoint:
POST /auth/refresh
{
"refreshToken": "REFRESH_VALID_123"
}
{
"accessToken": "NEW_ACCESS_TOKEN_999",
"expiresIn": 900
}
refreshToken tidak diisi → HTTP 400 "Refresh token is required"."REFRESH_EXPIRED" → HTTP 401 "Refresh token expired. Please login again.""REFRESH_VALID_123" → HTTP 403 "Invalid refresh token".HTTP 200 dengan token baru "NEW_ACCESS_TOKEN_" + Date.now().Mitigasi Serangan XSS vs CSRF pada Penyimpanan JWT Di bagian komentar kode solusi Anda, jelaskan:
- Risiko menyimpan JWT di
localStorage/sessionStorage(Vulnerable terhadap XSS).- Keunggulan
HttpOnly,Secure, danSameSite=StrictCookie untuk mencegah CSRF & XSS.