Skip to main content

Sebenarnya Apa Sih JWT Itu?

 


Ketika web dijalankan, maka segala aktifitas terekam. Termasuk usernama dan password yang kamu masukkan. 

Namun dibutuhkan pengamanan yang kuat agar segala data itu tidak hilang, dan tetap tersimpan dengan aman di dalam server

Awalnya teknologi Session menangani semua itu. Session akan bertugas untuk merekam data yang username dan password dalam web, sehingga ketika sewaktu waktu ada akun (username & passsword) yang masuk, data data itu takkan hilang. Mulai dari pesan masuk, jumlah absensi sekolahmu, biodatamu, dan lain sebagainya. Semua data itu bisa tetapa ada disana karena adanya Session yang disimpan dalam memory pada server

Namun akhir akhir ada teknologi yang menggantikannya, karena dirasa Session tak lagi aman. Bayangkan jika proses Session hanya semudah itu, berarti hanya dengan mengetahui sidik jari Session yang tersimpan, kita bisa menguasai data data yang kita anggap sebuah privasi. Apakah mau pesan masuk doi kita terbaca oleh orang asing? Tentu tidak

Maka dari itu lahirlah sebuah teknologi yang bernama JWT atau JSON Web Token

Apa Itu JWT (Json Web Token?)

Menurtu situs resminya:

"JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA."

Atau secara singkat JWT adalah standard yang mengamankan pertukaran informasi berbentuk object JSON. Yang mana informasi tersebut bisa diverifikasi karena telah ditandai secara digital.

Kita telah mendapatkan kata kunci untuk memahami JWT ini. Verifikasi dan Ditandai atau dalam bahasa inggris dikenal

Verify dan Signed

Bagaimana JWT Bekerja?

 


Pertama. Semisal kita memasukkan username dan password. Maka Server akan memberikan kode JWT, ini merupakan proses yang disebut sebagai Sign, dan token JWT tersebut merupakan Signature. Kode JWT ini diberikan berdasarkan kode rahasia. para programmer biasanya menyebutnya sebagai SECRET_KEY yang disimpan pada file .env

Contoh SECRET_KEY. Biasanya saat kita takkan memasukkan file ini pada repo Github. Caranya kita tuliskan .env pada file gitignore

Kedua. Setelah itu JWT akan memberikan JWT pada browser dan mengirimkan JWT sebagai header Request kepada Server

Ketiga. Server akan mem-verify JWT tersebut. Atau sederhananya, mencocokan Signature tersebut sehingga server bisa memastikan request ini merupakan request yang aman dan bukan berasal dari hacker

Keempat. Server memberikan response yang diminta oleh Client. Bisa berupa isi data json, data data yang harus dipopulasikan

Kelebihan JWT Dibandingkan Session Biasa


Ketika kita menggunakan Session. Setiap Client mengambil data dari server Bank, maka semua proses keluar masuk, merubah dan menghapus data akan berhasil karena Session pada server Bank menyimpan ID Session tersebut. Namun ketika Client mengakses server Retirement semua itu takkan berhasil karena server Retirement tidak menyimpan Session apapun. 

Sedangkan jika kita menggunakan JWT kita bebas mengakses server manapun, bisa Bank bisa Retirement. Selama kedua server tersebut memiliki SECRET_KEY yang sama

Amankan SECRET_KEY-mu

Tunggu. Apakah kamu yakin, SECRET_KEY mu aman?

Dan apakah kamu sudah tahu, bahwa SECRET_KEY mu tidak boleh sampai bocor?

Untuk mengamankan SECRET_KEY mu. Maka kita membutuhkan SECRET_KEY yang serandom mungkin. Serandom randomnya. Tidak bisa ditebak oleh manusia manapun. Hanya kita dan Allah yang boleh mengetahuinya

Bagaimana caranya? Caranya adalah dengan mendapatkan kode random tersebut menggunakan module bernama crypto

Buka CLI kalian. Dan ketik node

Lalu ketik require('crypto').randomBytes(64).toString('hex')

Maka kita akan mendapatkan angka angka, karakter karakter aneh ini

Ini lah yang akan menjadi SECRET_KEY kita. Kita kopi dan masukkan kedalam .env


 

Comments

Popular posts from this blog

Cara Mengatasi Missing Value Pada Dataset

  Ketika kita ingin mengolah data untuk menjadi sebua model machine learning, maka data yang harus disajikan harus bersih dari field field kosong. Biasanya kita akan menjumpai filed field bernilai NaN yang artinya field tersebut kosong atau tak diketahui. Ini sangat berpengaruh hasil model data kita Inilah yang disebut Missing Value. Nilai yang hilang dari beberapa baris dataset Cara Mengetahui Bahwa Dataset Kita Terdapat Missing Value? Cara termudah adalah dengan menggunakan method method yang tersedia oleh package Pandas Dengan Pandas, tak hanya kita bisa mengetahui dataset terdapat Missing Value atau tidak, kita bisa mencari mean, median dan modus, mengisikan data data yang kosong tersebut, dan melihat hasil data tersebut dari beberapa range tertentu Pandas juga bisa membantu kita untuk memeriksa apakah dataset kita memiliki data yang kosong. Tak mungkinkan kita melihat satu persatu ratusan atau ribuan data. Maka dari itu kita membutuhkan method yang dikerjakan oleh python dalam pa

Cara Mengatasi Hang/Freeze Pada Laptop Asus TUF Gaming

  Ada beberapa kendala ketika membeli laptop. Seperti ada aplikasi yang tidak kompaktibel, ada yang hardwarenya crashed, dan bahkan memang harus dibawa ke manufakturnya untuk diktukar karena ada barang yang kita beli adalah miss saat quality control Terlepas dari semua kendala tersebut. Saya akan memberikan sekedar solusi yang bisa menjadi manfaat jika permasalahan itu sama dengan kalian. Yaitu, laptop yang suka freeze, hang, saat kita operasikan Sedikit Cerita Saya belum ada setahun menggunakan laptop Asus varian Tuf Gaming ini. Namun saat beberapa minggu pertama saya mencobanya, ada beberapa kendala yaitu laptop sering hang dan freeze tanpa sebab. Ini terjadi secara tiba tiba. Dan seumpamam saya bawa lagi ke outlet laptop ini berasal, saya gak bisa memberikan alasan yang jelas kenapa laptop ini bisa freeze dan hang. Karena memang terjadi tiba tiba saja.  Hingga beberapa bulan selanjutnya, laptop ini semakin sering hang. Baru beberapa menit dipakai freeze, saya force shut down lewat t

Kupas Tuntas Seputar Agile Dan Contoh Penerapannya

  Startup, perusahaan digital, atau bahkan programmer yang sedang melayani clientnnya untuk mengerjakan sebuah aplikasi memiliki metode.  Metode ini menjadi panduan baku yang kerap digunakan dimananpun dalam pengemabangan produk digital Lebih mudahnya saat kita membangun aplikasi mobile. Kita akan mempelajari bahasa pemograman apa saja yang dibutuhkan, juga serba serbi framework dan tool yang memudahkan segala prosesnya Metode yang baru saja saya ceritakan diatas dinamakan Agile . Sedangkan project yang menerapkan konsep tersebut dinamakan, Agile Project Apa Itu Agile dan Agile Project? Menurut Wikipedia .  Sekumpulan praktek yang bertujuan untuk menaikkan keefeketifan pengembangan suatu aplikasi secara profesional, tim dan terorganisir. Agile melibatkan pengembangan solusi melalui usaha secara kolaboratif dari sifat yang sudah terorganisir, fungsionalitas dan pelanggan Metode ini sangat mengandalkan kolaborasi. Mulai dari para engineer hingga product manager, semuanya harus melalui s