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.
İmza:
Jeton
Başlık
Yük
Nasıl kullanılır
- 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.
- İ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.
- 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.
- 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.
İlgili araçlar
İstemleri okuduktan sonra genellikle sıradaki adımlar.