Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

Ini adalah postingan yang diterjemahkan oleh AI.

Seize the day

Apa itu JWT (JSON Web Token)?

  • Bahasa penulisan: Bahasa Korea
  • Negara referensi: Semua negara country-flag

Pilih Bahasa

  • Bahasa Indonesia
  • English
  • 汉语
  • Español
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

Teks yang dirangkum oleh AI durumis

  • JSON Web Token (JWT) adalah token terenkripsi untuk mengirimkan informasi secara aman.
  • JWT terdiri dari header, payload, dan tanda tangan, dan tanda tangan tersebut menjamin integritas data.
  • JWT tidak memerlukan pengelolaan status informasi secara terpisah, sehingga memiliki skalabilitas tinggi di lingkungan terdistribusi.

Apa itu JWT?

JSON Web Token (JWT) adalah jenis standar terbuka (RFC 7519) yang merupakan cara untuk mengirimkan informasi dengan aman dalam format objek JSON. Seperti namanya, ini berarti memasukkan informasi yang diperlukan ke dalam token dan kemudian mengenkripsikannya untuk digunakan.


JWT ditekankan sebagai token yang ditandatangani (signed token). Ketika menggunakan pasangan kunci publik/privat untuk menandatangani, tanda tangan ini menjamin bahwa hanya pihak yang memiliki kunci privat yang menandatangani token tersebut. Artinya, server yang memiliki kunci dapat mengetahui apakah token ini sah.


Struktur JWT

JWT terdiri dari Header, Payload, dan Signature.

Setiap bagian di-encode dengan Base64 dan dipisahkan dengan titik (.).

Header

{
    "alg": "HS256",
    "typ": "JWT"

Header berisi dua informasi utama: jenis token (typ) dan algoritma penandatanganan yang digunakan (alg). Algoritma penandatanganan digunakan untuk membuat dan memverifikasi tanda tangan.

typ ditetapkan sebagai "JWT", dan alg ditulis sebagai HMAC, SHA256, dll. Seperti contoh di atas, ini berarti menggunakan algoritma HS256 dengan kunci privat.

Payload

{
    "sub": "1234567890",
    "name": "John Doe",
    "iat": 1516239022


Payload berisi Claim yang ingin Anda kirimkan ke dalam token. Informasi identifikasi pengguna atau property untuk token disimpan dalam bentuk key-value. Singkatnya, Anda dapat menambahkan apa pun yang Anda inginkan!

Dalam spesifikasi standar, nama kunci didefinisikan secara ringkas sebagai 3 huruf.

Registered claim adalah sebagai berikut.

  • iss (Issuer): Penerbit token (berisi informasi identifikasi unik dari penerbit token)
  • sub (Subject): Subjek yang dituju token
  • aud (Audience): Penerima token
  • exp (Expiration Time): Waktu kedaluwarsa token (setelah waktu ini, token tidak lagi valid)
  • nbf (Not Before): Tanggal aktivasi token (token tidak dapat digunakan sebelum waktu ini)
  • iat (Issued At): Waktu penerbitan token
  • jti (JWT Id): Pengidentifikasi token JWT (nilai untuk membedakan jika ada beberapa penerbit)


Anda dapat menambahkan nilai lain yang diperlukan jika ada.

Namun, payload bukanlah nilai yang ditandatangani dan tidak dienkripsi, sehingga tidak menyimpan informasi sensitif.

Siapa pun dapat melihatnya jika didekripsi.jwt.io Anda juga dapat langsung melihatnya di situs web.

Signature

HMACSHA256(
    base64UrlEncode(header) + "." +
    base64UrlEncode(payload),
    your-256-bit-secret

Header dan Payload di-encode dengan base64, dihubungkan dengan titik (.), dan kemudian ditandatangani menggunakan kunci privat your-256-bit-secret yang dimiliki server.

Oleh karena itu, hanya server yang mengeluarkan token yang dapat mendekripsi tanda tangan (Signature) dengan kunci privat.

Jika Anda berpikir tentang dekripsi, Anda dapat melihat apakah base64UrlEncode(header) cocok dengan nilai header JWT, dan apakah base64UrlEncode(payload) cocok dengan nilai header JWT, setelah Anda mendekripsi tanda tangan (Signature) dengan kunci privat.

Header dan payload, tidak termasuk tanda tangan, hanya di-encode sehingga informasi dalam teks dapat dilihat, tetapi integritas dan keamanan informasi dipertahankan melalui tanda tangan.



JWT adalah Self-contained yang memiliki semua informasi yang diperlukan, dan dibuat untuk mengatasi kekurangan sesi yang harus stateful. JWT tidak memerlukan penyimpanan terpisah.

Server tidak perlu mempertahankan sesi, sehingga stateless, yang meningkatkan skalabilitas dalam arsitektur sistem terdistribusi atau mikroservis.

Dilindungi oleh Signature, tanda tangan digital, dan dapat menjamin integritas data.

nofunfromdev
Seize the day
Seize the day
nofunfromdev
[Efektif Java] Item 6. Hindari Pembuatan Objek yang Tidak Diperlukan Panduan tentang cara mengurangi pembuatan objek yang tidak diperlukan di Java. String, Boolean, dan objek tak berubah lainnya lebih baik menggunakan literal, dan ekspresi reguler lebih baik menggunakan instance Pattern yang di-cache. Selain itu, autoboxin
제이온
제이온
제이온
제이온

28 April 2024

Gunakan Sertifikat Finansial Gratis, Bukan Sertifikat Bersama Berbayar! Kami memperkenalkan Sertifikat Finansial yang dapat dikeluarkan secara gratis sebagai pengganti Sertifikat Bersama. Dapat dikeluarkan dalam 3 menit dan dapat digunakan selama 3 tahun, sehingga praktis. Anda dapat mengajukan permohonan di situs web bank, d
길리
길리
길리
길리
길리

17 April 2024

[Non-Major, Survive as a Developer] 14. Ringkasan Konten Wawancara Teknis yang Sering Ditanyakan untuk Pengembang Pemula Panduan persiapan wawancara teknis untuk pengembang pemula. Area memori utama, struktur data, RDBMS dan NoSQL, berorientasi prosedur dan berorientasi objek, overriding dan overloading, algoritma penggantian halaman, proses dan thread, OSI 7 layer, TCP dan
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

3 April 2024

Apa itu Java Collections Framework (JCF)? - Definisi dan Fitur JCF (JAVA) Java Collections Framework (JCF) adalah kumpulan kelas Java yang menyediakan metode standar untuk memproses sejumlah besar data secara efisien. JCF mengimplementasikan struktur penyimpanan data dan algoritma dalam kelas untuk meningkatkan kemampuan penggu
제이온
제이온
제이온
제이온

27 April 2024

Apa itu LLM (Large Language Model)? Model bahasa besar (LLM) adalah teknologi inti kecerdasan buatan yang mempelajari kumpulan data teks yang besar untuk memperoleh kemampuan pemrosesan bahasa yang mirip manusia dan dapat digunakan di berbagai bidang seperti chatbot, terjemahan, dan pembuat
세상 모든 정보
세상 모든 정보
세상 모든 정보
세상 모든 정보

1 April 2024

Membuat CLI yang Menakjubkan dengan Rust Artikel ini menjelaskan cara mengimplementasikan aplikasi CLI dengan Rust. Dengan menggunakan library clap dan ratatui, kita akan membuat program CLI yang memiliki fitur login dan logout. Artikel ini mencakup semua aspek pengembangan CLI berbasis Rust, te
곽경직
곽경직
곽경직
곽경직
곽경직

13 Maret 2024