Konsep Jwt Yang Programmer Pemula Mesti Pahami
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 (.):
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" }
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 }
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
Login
User login dengan ngirim username dan password ke server. Kalau login berhasil, server bakal ngirim JWT ke client.Simpan JWT
Client nyimpen JWT ini, biasanya di local storage atau cookies.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>
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.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
gabungan header, payload, dan secret key.
Di bawah adalah contoh alur program bagaima jwt di pakai di aplikasi. biar kalian lebih mudah mengerti
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
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.
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
Sponsored Content
Gorm Golang
Saya akan menjelaskan bagaimana cara menggunakan gorm golang secara terperinci
Belum ada komentar
Jadilah yang pertama memberikan komentar!