JWT kodlayıcı / çözücü

Başlık ve yükü okumak için bir jeton yapıştırın ya da kendi istemlerinizle bir jeton imzalayın — düğme yok, yükleme yok.

Çözümlemede isteğe bağlı (doğrulamak için doldurun), imzalamak için zorunlu.

Nasıl kullanılır

  1. Bir jeton yapıştırın: başlık ve yük anında görünür, basılacak düğme yoktur. Jetondan gelen hiçbir şey değiştirilmez, imzalandığı gibi kalır — girdi asla yeniden yazılmaz.
  2. İmzayı doğrulamak için girdinin altındaki alana gizli anahtarı ekleyin. Boş bırakmak yalnızca “doğrulanmadı” demek: istemleri yine de olduğu gibi okursunuz.
  3. Kodla moduna geçin, istemlerinizi JSON olarak yazın, HS256/384/512 ve bir gizli anahtar seçin, çıkan jetonu kopyalayın. Mod değiştirmek yazdıklarınızı asla temizlemez.
  4. Standart exp / iat / nbf istemleri kendi dilinizde ve saat diliminizde açıkça yazılır; süre dolmuş ve henüz geçerli olmayan işaretleri gösterilir.

Örnek

Jeton

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1LTEwMjQiLCJuYW1lIjoiSmFuZSBDb29wZXIiLCJyb2xlIjoiZWRpdG9yIiwiaXNzIjoiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20iLCJpYXQiOjE3NjcyMjU2MDAsImV4cCI6MTc5ODc2MTYwMH0.jCqliF6m-TAglXcHrjuXj7kYIjjsRO7kv6_8O1yb_7Q

Başlık ve yük

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

Payload
{
  "sub": "u-1024",
  "name": "Jane Cooper",
  "role": "editor",
  "iss": "https://api.example.com",
  "iat": 1767225600,
  "exp": 1798761600
}

“dev-secret-change-me” gizli anahtarıyla imzalandı; Gizli anahtar alanına yazınca durum satırı “İmza doğrulandı” olur. Kodla moduna geçip Örnek'e basarsanız aynı yük gelir: aynı gizli anahtarla bu jetonu karakter karakter yeniden üretir.

Kurallar, sınırlar ve bilinen sorunlar

  • Hem imzalama hem doğrulama için yalnızca HS256, HS384 ve HS512 desteklenir. RS*, ES* ve PS* jetonları çözülüp olduğu gibi gösterilir, ancak imzaları asla kontrol edilmez — bunun için açık anahtar gerekir, bu yüzden durum satırı tahmin etmek yerine bunu söyler.
  • İmzasız jetonlar (alg: none) çözülür ve açıkça işaretlenir ama asla üretilmez: gizli anahtar vermeden imzalama isteği, imzasız jeton yerine hata verir.
  • Kodlama başlığı kendisi üretir (`{"alg": … ,"typ": "JWT"}`). kid, jku, x5c veya cty gibi başlık alanları taşınmaz — bu araç sertifika zincirlerini değil istemleri imzalar.
  • İstem JSON'unuz imzalamadan önce sıkı biçimde yeniden serileştirilir, böylece girinti ve yorumlar jetona girmez. Anahtar sırası JavaScript nesnelerini izler: tekrar eden anahtarlar sonda kalanla birleşir ve sayıya benzeyen anahtarlar öne geçer.
  • Çok büyük tam sayılar hassasiyet kaybeder — `12345678901234567890` yuvarlanmış döner, çünkü JavaScript sayıları böyle yapar. Hiçbir şey sessizce düzeltilmez; tam basamaklar önemliyse dize kullanın.
  • İstemler okuma kolaylığı için girintili gösterilir; imza ise jetonda göründüğü gibi ham bölümleri kapsar. Arkanızda hiçbir şey yeniden kodlanmaz, bu yüzden burada doğrulanan bir jeton kendi kodunuzda da doğrulanır.
  • Base64url katıdır: `+`, `/` ve `=` sessizce kabul edilmek yerine hata olarak bildirilir; UTF-8 olmayan baytlar yedek karakterlerle değiştirilmeden bildirilir. Yapıştırılan jetondaki boşluklar yok sayılır, çünkü jetonlar hiç boşluk içermez.
  • Şifrelenmiş JWE'ler (beş bölüm) çözülmez — yapıştırdığınızın tam olarak ne olduğu size söylenir.
  • Boyut sınırı 10.000 karakter. Hiçbir şey yüklenmez, saklanmaz, URL'ye yazılmaz veya paylaşılmaz: paylaşım düğmesi yalnızca bu sayfanın adresini paylaşır, jetonunuzu ya da gizli anahtarınızı asla.

İstemleri okuduktan sonra genellikle sıradaki adımlar.