Mekanisme Validasi Klaim JWT
Validasi klaim JWT (JSON Web Token) adalah proses krusial untuk memastikan bahwa token yang diterima oleh server adalah sah, belum kedaluwarsa, dan berasal dari sumber yang terpercaya. Validasi tidak hanya memeriksa tanda tangan (signature), tetapi juga memverifikasi isi klaim (payload) di dalamnya.
Langkah utama dalam validasi klaim meliputi pemeriksaan exp (expiration time), nbf (not before), iss (issuer), dan aud (audience). Jika salah satu klaim ini tidak sesuai dengan kebijakan keamanan aplikasi, token harus ditolak.
Langkah Teknis Validasi Klaim
- Verifikasi Tanda Tangan: Pastikan token belum dimodifikasi dengan memverifikasi signature menggunakan kunci publik (untuk RS256) atau secret key (untuk HS256).
- Pemeriksaan Waktu (Exp & Nbf): Bandingkan waktu saat ini dengan klaim
exp. Jikacurrent_time > exp, token kedaluwarsa. - Validasi Issuer (iss): Pastikan nilai
isscocok dengan server otorisasi yang diharapkan. - Validasi Audience (aud): Pastikan token ditujukan untuk aplikasi atau layanan Anda.
Tabel Komponen Klaim JWT
| Klaim | Deskripsi | Tindakan Validasi |
|---|---|---|
| exp | Expiration Time | Wajib: Tolak jika waktu sekarang > exp |
| nbf | Not Before | Wajib: Tolak jika waktu sekarang < nbf |
| iss | Issuer | Opsional: Cocokkan dengan string identitas server |
| aud | Audience | Opsional: Cocokkan dengan ID aplikasi |
| iat | Issued At | Opsional: Cek kewajaran waktu pembuatan |
Contoh Implementasi Validasi (Node.js)
const jwt = require('jsonwebtoken');
const token = 'eyJhbGci...';
const secretKey = 'your-secret-key';
try {
const decoded = jwt.verify(token, secretKey, {
issuer: 'https://auth.example.com',
audience: 'my-app-id'
});
console.log('Token valid:', decoded);
} catch (err) {
console.error('Validasi gagal:', err.message);
}Tips Troubleshooting
- Clock Skew: Berikan toleransi beberapa detik (misal 30-60 detik) saat membandingkan waktu
expuntuk menghindari masalah sinkronisasi server. - Algoritma: Selalu tentukan algoritma yang diharapkan (misal
{ algorithms: ['RS256'] }) untuk mencegah seranganalg: none. - Log Kesalahan: Jangan tampilkan detail error JWT yang spesifik kepada pengguna akhir untuk mencegah kebocoran informasi sistem.
🔍 Orang Lain Juga Mencari Ini
Jwt Validation Best Practices
Cara Verifikasi Jwt
Jwt Payload Structure
Jwt Expiration Check
Rs256 Vs Hs256 Jwt
Jwt Security Vulnerabilities
Implementasi Jwt Nodejs
Jwt Audience Validation
Jwt Issuer Validation
Json Web Token Debugging
Jwt Library Security
Token Authentication Flow
Jwt Signature Verification
Jwt Claims Explained
Oauth2 Jwt Validation