Güvenli, yerel bir JWT kodlayıcı
Bu jwt kodlayıcı, geliştiricilerin doğrudan tarayıcı üzerinden hızlıca JSON Web Token'lar oluşturmasına, düzenlemesine ve imzalamasına olanak tanır. İster bir kimlik doğrulama akışı geliştiriyor, ister bir API uç noktasını test ediyor veya bir mikro hizmette hata ayıklıyor olun; özel betikler yazmadan veya kimlik bilgilerinizi üçüncü taraf sunucularla paylaşmadan anında geçerli token'lar oluşturabilirsiniz.
Araç, tarayıcınızın yerleşik Web Crypto API'sini kullandığı için tüm veri işleme ve kriptografik imzalama işlemleri tamamen cihazınızda gerçekleşir. JSON payload'unuz ve gizli anahtarlarınız asla karşıya yüklenmez, depolanmaz veya kayıt altına alınmaz. Bu yerel odaklı yaklaşım, hassas geliştirme veya test (staging) kimlik bilgileriyle çalışırken bile çevrimiçi ortamda güvenle JWT imzalamanızı sağlar.
JWT token nasıl oluşturulur
Bir JWT token oluşturmak için üç bileşene ihtiyacınız vardır: başlık (algoritmayı belirler), payload (verilerinizi içerir) ve gizli anahtar (token'ı güvenli hale getirir).
Algoritmanızı seçerek başlayın. Bu araç güçlü bir HS256 jwt oluşturucu olarak çalışır, ancak HS384 ve HS512'yi de destekler. Bunlar simetrik HMAC algoritmalarıdır, yani token'ı imzalamak ve daha sonra doğrulamak için birebir aynı gizli anahtar kullanılır. Sayı ne kadar yüksek olursa (örn. 512), ortaya çıkan hash boyutu o kadar büyük olur; bu da biraz daha uzun bir token dizesi pahasına daha güçlü kriptografik güvenlik sağlar.
Ardından, ilgili metin alanında payload'unuzu tanımlayın. Payload geçerli bir JSON olmalıdır. Siz JSON'u düzenlerken veya gizli anahtarı güncellerken, araç imzayı gerçek zamanlı olarak yeniden hesaplar ve JSON yapınızda bir sözdizimi hatası varsa anında geri bildirim sağlar. Payload ve gizli anahtarınız belirlendikten sonra, nihai token kopyalanmaya ve uygulamanızın Authorization başlıklarında veya çerezlerinde kullanılmaya hazırdır.
Token oluşturmak için yaygın kullanım senaryoları
Modern web geliştirmede elinizin altında güvenilir bir jwt oluşturucu bulunması şarttır. Geliştiriciler bu aracı genellikle çeşitli test ve hata ayıklama senaryoları için kullanır:
API Endpoint'lerini Test Etme: Postman veya Insomnia gibi API istemcileriyle çalışırken, korumalı rotalara erişmek için genellikle geçerli bir bearer token'a ihtiyaç duyarsınız. Giriş yapıp token almak için tüm frontend uygulamanızı çalıştırmak yerine, tam olarak ihtiyacınız olan kullanıcı kimliği ve rollerle burada manuel olarak bir token oluşturabilirsiniz.
Kimlik Doğrulama Mantığında Hata Ayıklama: Backend'iniz token'ları reddediyorsa, manuel olarak bir token oluşturmak sorunu izole etmenize yardımcı olur. Sorunun yanlış bir gizli anahtardan, hatalı bir payload'dan veya imzalama algoritmasındaki bir uyuşmazlıktan kaynaklanıp kaynaklanmadığını doğrulayabilirsiniz.
Uç Durumları Oluşturma: Backend'inizin süresi dolmuş token'ları, eksik claim'leri veya yetkisiz rolleri nasıl işlediğini test etmek güvenlik için çok önemlidir. Bu uç durumları (edge case) oluşturmak ve sunucunuzun doğru HTTP durum kodlarıyla yanıt verdiğinden emin olmak için buradaki JSON payload'unu kolayca düzenleyebilirsiniz.
Zaman damgalarını ve claim'leri yönetme
JSON Web Token'lar, token'ın yaşam döngüsü ve temsil ettiği kullanıcı hakkında bilgi aktarmak için claim (beyan) adı verilen özel alanlar kullanır. Zamana dayalı en yaygın claim'ler iat (Veriliş Zamanı) ve exp (Sona Erme Zamanı) alanlarıdır. Bu claim'lerin her ikisi de 1 Ocak 1970'ten bu yana geçen saniye sayısını ifade eden bir Unix zaman damgası (timestamp) gerektirir.
Test aşamasında bu zaman damgalarını manuel olarak hesaplamak zahmetli olabilir. İş akışınızı hızlandırmak için bu araç, payload düzenleyicisinin üzerinde hızlı işlem düğmeleri içerir.
- iat = now seçeneğine tıklamak,
iatalanına anında geçerli Unix zamanını ekler veya bu alanı günceller. - exp = +1h veya exp = +24h seçeneğine tıklamak, ileri bir tarihteki zaman damgasını hesaplar ve
expalanını buna göre günceller.
Bu sayede, oluşturduğunuz token'lar anında geçerli olur ve sunucunuzun zaman doğrulama mantığı tarafından zamanından önce reddedilmez.
Base64 Secret'larını İşleme
Online JWT imzalarken sık karşılaşılan sorunlardan biri, secret (gizli anahtar) kodlamasıdır. Çoğu backend sistemi ve rehber, HMAC secret'ınız için güçlü ve rastgele bir byte dizisi oluşturmanızı ve bunu ortam değişkenlerinizde bir Base64 string olarak saklamanızı önerir.
Sunucunuz token'ı imzalamadan veya doğrulamadan önce bu Base64 string'ini ham byte'lara (raw bytes) dönüştürüyorsa, Base64 metnini standart bir oluşturucuya doğrudan yapıştırmak imzanın geçersiz olmasına yol açar. Oluşturucu, Base64 karakterlerini düz metin (plain text) olarak işleyeceği için uyuşmazlık ortaya çıkar.
Bu sorunu çözmek için Secret is Base64 encoded (Secret Base64 kodlu) kutucuğunu işaretlemeniz yeterlidir. Araç, HMAC hash işlemini uygulamadan önce secret metninizi orijinal ham byte'lara dönüştürerek, oluşturulan imzanın backend ortamınızla birebir eşleşmesini sağlar.
JWT yapısını anlama
Bir token oluşturduğunuzda, yapısını daha iyi anlamanız için çıktı renk kodlu olarak gösterilir. Standart bir JWT, noktalarla (.) ayrılmış üç bölümden oluşur:
- Header (Kırmızı): Token hakkındaki meta verileri, temel olarak imzalama algoritmasını içerir (örn.
{"alg":"HS256","typ":"JWT"}). Bu kısım, algoritma seçiminize göre otomatik olarak oluşturulur ve Base64-URL ile kodlanır. - Payload (Mavi): Asıl JSON verinizdir ve o da Base64-URL ile kodlanmıştır. Bu kısım, token'ı ele geçiren herkes tarafından kolayca okunabilir; bu nedenle payload içine asla şifreleri veya çok hassas verileri koymamalısınız.
- İmza (Yeşil): Kodlanmış header ve kodlanmış payload'un, gizli anahtarınız (secret key) kullanılarak imzalanmış kriptografik özetidir (hash). Bu, token'ın iletim sırasında değiştirilmediğini garanti eder.
Mevcut bir token'ınız varsa ve gizli anahtar olmadan içeriğini görüntülemek istiyorsanız, header ve payload kısımlarını güvenle incelemek için onu JWT Çözücü aracımıza yapıştırabilirsiniz.