crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
1. JWT Nedir ve Nasıl Çalışır?
JWT, taraflar arasında güvenli bir şekilde JSON objesi aktarılmasını sağlayan bir standarttır. Çalışma mantığı bir pasaporta benzer:
Kullanıcı adı ve şifresiyle giriş yapar.
Sunucu bilgileri doğrular ve kullanıcıya özel, dijital imzalı bir token üretip gönderir.
Kullanıcı, sonraki her isteğinde bu token'ı yanında taşır (genellikle HTTP Header içinde).
Sunucu token'ı kontrol eder; imza doğruysa işlemi onaylar.
2. JWT'nin Anatomisi (Üç Parça)
Bir JWT jetonu, birbirine nokta (.) ile bağlanmış üç farklı Base64 formatlı parçadan oluşur:
[]Header (Başlık): Jetonun tipi ve kullanılan şifreleme algoritması (örn: HMAC SHA256).
[]Payload (Yük): Kullanıcının ID'si, adı veya yetkileri gibi veriler. (Hassas bilgiler buraya konulmamalıdır çünkü kolayca çözülebilir).- Signature (İmza): İlk iki parçanın sunucudaki "Gizli Anahtar" (Secret Key) ile birleştirilip şifrelenmiş halidir. Jetonun yolda değiştirilmediğini garanti eder.
3. Node.js ve jsonwebtoken Kütüphanesi
Projenizde JWT kullanmak için en yaygın kütüphane jsonwebtoken'dır.
Kurulum:
Bash:
npm install jsonwebtoken
Token Oluşturma (Sign):
JavaScript:
const jwt = require('jsonwebtoken');
const kullanici = { id: 123, ad: "Can", rol: "admin" };
const SECRET_KEY = "aslinda_cok_gizli_bir_anahtar";
// 1 saat geçerli bir token oluştur
const token = jwt.sign(kullanici, SECRET_KEY, { expiresIn: '1h' });
console.log("Oluşturulan Jeton:", token);
Token Doğrulama (Verify):
JavaScript:
try {
const dogrulanmişVeri = jwt.verify(token, SECRET_KEY);
console.log("Kullanıcı Bilgileri:", dogrulanmişVeri);
} catch (err) {
console.log("Geçersiz veya süresi dolmuş jeton!");
}
4. JWT Neden Tercih Edilir?
| Özellik | Geleneksel Session | JWT (Token) |
|---|---|---|
| Depolama | Sunucu hafızasında (RAM) tutulur. | İstemcide (Browser/Mobil) tutulur. |
| Ölçeklenebilirlik | Zordur (Her sunucu session'ı bilmeli). | Kolaydır (Her sunucu imza kontrolü yapabilir). |
| Mobil Uyumluluk | Cookie yönetimi zordur. | Kusursuz çalışır. |
5. Güvenlik Uyarısı: Secret Key ve Payload
JWT kullanırken iki altın kural vardır:
Secret Key'inizi asla ama asla GitHub gibi yerlerde paylaşmayın. Bu anahtarı ele geçiren herkes sahte jetonlar üretebilir.
Payload kısmına şifre gibi gizli bilgileri koymayın. Base64 formatı bir şifreleme değil, kodlama yöntemidir; herkes içini okuyabilir.
Sonuç
JWT, modern web mimarilerinin (özellikle Mikroservisler ve Single Page Applicationlar) kalbidir. Sunucuyu yormadan, güvenli ve hızlı bir yetkilendirme sağlar. Doğru yapılandırıldığında, uygulamanızın güvenliğini profesyonel bir seviyeye taşır.