Konsep Jwt Yang Programmer Pemula Mesti Pahami

Feb 06, 2025
Free

Hai, guys! Kali ini gw bakal bahas salah satu metode autentikasi yang lagi nge-tren banget di kalangan programmer, terutama buat yang ngembangin aplikasi atau website. Yap, bener banget, kita bakal ngomongin JWT atau JSON Web Token. Buat lo yang mungkin masih bingung apa itu JWT, kenapa banyak yang pake, atau gimana cara kerjanya, santai aja! Gw bakal jelasin dengan bahasa yang simpel dan santai, plus kasih contoh biar lo makin paham. Jadi, siapin kopi atau teh lo, dan let’s dive in!

#Apa Itu JWT?

JWT itu kayak "tiket" digital yang dipake buat nge-share informasi antara dua pihak, biasanya antara client (misalnya, aplikasi web atau mobile) sama server. Informasi yang dibawa di dalam JWT ini biasanya berupa data user, seperti ID, role, atau informasi lain yang diperlukan buat otentikasi dan otorisasi.

#Struktur JWT

JWT itu terdiri dari tiga bagian yang dipisahkan oleh titik (.):

  1. Header
    Ini bagian yang ngejelasin algoritma apa yang dipake buat nge-sign token. Biasanya pake algoritma HMAC SHA256 atau RSA.

    Contoh:

    {
      "alg": "HS256",
      "typ": "JWT"
    }
  2. Payload
    Ini bagian yang nyimpen data atau informasi yang mau dibawa. Misalnya, data user kayak ID, nama, atau role. Payload ini bisa dibaca sama siapa aja, jadi jangan taruh informasi sensitif kayak password di sini.

    Contoh:

    {
      "sub": "1234567890",
      "name": "John Doe",
      "admin": true
    }
  3. Signature
    Ini bagian yang bikin JWT aman. Signature dihasilkan dari gabungan header, payload, dan secret key yang cuma diketahui sama server. Signature ini yang ngejaga supaya JWT nggak bisa diubah sama orang lain.

    Contoh:

    HMACSHA256(
      base64UrlEncode(header) + "." +
      base64UrlEncode(payload),
      secret)

#Cara Kerja JWT

  1. Login
    User login dengan ngirim username dan password ke server. Kalau login berhasil, server bakal ngirim JWT ke client.

  2. Simpan JWT
    Client nyimpen JWT ini, biasanya di local storage atau cookies.

  3. Request ke Server
    Setiap kali client mau ngakses resource yang dilindungi (misalnya, data user), client ngirim JWT ini di header request.

    Contoh header:

    Authorization: Bearer <JWT>
  4. Verifikasi JWT
    Server ngecek JWT yang diterima. Pertama, server ngecek signature buat mastiin JWT nggak diubah sama orang lain. Kalau valid, server ngambil data dari payload buat nentuin siapa user yang ngirim request.

  5. Response
    Kalau JWT valid, server ngirim response yang diminta sama client. Kalau nggak valid, server bakal nolak request tersebut.

#Contoh JWT

Misalnya, kita punya JWT kayak gini:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
  • Header (setelah di-decode):

    {
      "alg": "HS256",
      "typ": "JWT"
    }
  • Payload (setelah di-decode):

    {
      "sub": "1234567890",
      "name": "John Doe",
      "iat": 1516239022
    }
  • Signature
    Ini bagian yang bikin JWT aman. Signature dihasilkan dari gabungan header, payload, dan secret key yang cuma diketahui sama server. Signature ini yang ngejaga supaya JWT nggak bisa diubah sama orang lain.

    Contoh:

    HMACSHA256(
      base64UrlEncode(header) + "." +
      base64UrlEncode(payload),
      secret)

biar lebih gampang ini contoh illustrasinya

Uploaded Image

  • gabungan header, payload, dan secret key.

Di bawah adalah contoh alur program bagaima jwt di pakai di aplikasi. biar kalian lebih mudah mengerti

Uploaded Image

Sponsored


Gimana simple kan ya? jadi dengan ini kalian udah bisa mengerti bagaimana jwt bekerja. sehingga ketika mencoba jwt di project kalian akan lebih mudah kalian pahami nantinya. oke ya guys nantikan article menarik berikutnya dengan cara subscribe newsletter saya.

Diskusi & Komentar

Memuat komentar...

Artikel Terkait

Mendalami Database Sharding

Basis data adalah komponen penting dari setiap aplikasi, tetapi juga merupakan salah satu komponen yang paling sulit untuk di-skala secara horizontal. Ketika aplikasi menerima peningkatan lalu lintas dan volume data, basis data dapat menjadi hambatan kinerja, yang mempengaruhi pengalaman pengguna.

Jan 16, 2025 Premium

Clean Architecture : Konsep Yang Paling Banyak Dibahas dalam membangun aplikasi

Ini adalah salah satu konsep architecture yang paling banyak di bahas dalam sofware engineering dimana konsep ini memberikan kita kerangkan untuk membangun aplikasi yang scalable

Feb 05, 2025 Premium

Sponsored Content

Gorm Golang

Saya akan menjelaskan bagaimana cara menggunakan gorm golang secara terperinci

Jan 15, 2025 Free