Keamanan API dengan JWT

Dipublikasikan: 12 Januari 2025 • Kategori: Developer • Penulis: Jumanto

JSON Web Token (JWT) adalah metode autentikasi modern yang banyak digunakan pada aplikasi mobile, web, dan layanan API. JWT membuat proses login menjadi lebih aman karena token tidak perlu disimpan di server.

1. Apa Itu JWT?

JWT adalah token berbasis JSON yang berisi data terenkripsi seperti ID user, waktu kadaluarsa, dan informasi autentikasi lainnya. Token ini ditandatangani menggunakan secret key sehingga tidak dapat dipalsukan.

2. Struktur JWT

JWT terdiri dari tiga bagian:

3. Contoh Membuat JWT di PHP Native

Berikut contoh sederhana pembuatan token JWT:


$header = json_encode(['alg' => 'HS256', 'typ' => 'JWT']);
$payload = json_encode(['id' => $user['id'], 'exp' => time() + 3600]);

$base64Header = rtrim(strtr(base64_encode($header), '+/', '-_'), '=');
$base64Payload = rtrim(strtr(base64_encode($payload), '+/', '-_'), '=');

$signature = hash_hmac('sha256', $base64Header . "." . $base64Payload, 'SECRET_KEY', true);
$base64Signature = rtrim(strtr(base64_encode($signature), '+/', '-_'), '=');

$jwt = $base64Header . "." . $base64Payload . "." . $base64Signature;

4. Cara Memvalidasi Token JWT

Server harus memverifikasi signature JWT setiap kali request:


$cekSignature = hash_hmac('sha256', $base64Header . "." . $base64Payload, 'SECRET_KEY', true);
$validSignature = rtrim(strtr(base64_encode($cekSignature), '+/', '-_'), '=');

if ($validSignature === $tokenSignature) {
    echo "Token valid";
} else {
    echo "Token tidak valid";
}

5. Best Practice Keamanan JWT

Dengan JWT, API kamu akan lebih modern dan aman, cocok untuk aplikasi Android, React Native, maupun web.

← Kembali ke Blog