# JWT vs OAuth

Adres: https://softwaredictionary.org/tr/karsilastirma/jwt-vs-oauth
Son güncelleme: 2026-10-05

Kısaca: OAuth, uygulamaya kullanıcı verisine sınırlı erişim veren bir çerçeve, JWT ise bir token biçimidir. Rakip değiller: OAuth çoğu zaman JWT erişim token'ı verir.

## JWT ile OAuth arasındaki fark nedir?

JSON Web Token (JWT) bir biçimdir: kullanıcının kim olduğu ve token'ın ne zaman sona ereceği gibi claim'ler taşıyan imzalı bir metin. OAuth 2.0 ise bir yetkilendirme çerçevesidir: bir uygulamanın, kullanıcının parolasını hiç görmeden, onun adına bir API'yi çağırmak için kullanıcıdan izin aldığı akışlar bütünü.

İkisi, OAuth'un token dağıttığı yerde buluşur. Kullanıcı bir uygulamayı onayladıktan sonra yetkilendirme sunucusu bir erişim token'ı verir, API de onu her istekte kabul eder. OAuth bu token'ın neye benzeyeceğini söylemez: API'nin sunucuya sorarak denetlediği rastgele bir metin de olabilir, API'nin imzasından kendi başına doğruladığı bir JWT de. Pek çok sağlayıcı bu yüzden JWT'yi seçer; OAuth üzerine kurulu OpenID Connect de ID token'ı için her zaman JWT kullanır.

Yani JWT mi OAuth mu diye sormak, pasaport mu sınır kontrolü mü diye sormaya benzer: biri bir belgedir, diğeri kimin belge alacağına ve belgenin neye izin vereceğine karar veren süreçtir. JWT'leri OAuth olmadan, örneğin kendi giriş sisteminizin oturum token'ları olarak kullanabilirsiniz; OAuth'u da JWT olmadan, opak token'larla kullanabilirsiniz.

İki hata yaygındır. Birincisi OAuth'u giriş sistemi sanmaktır: OAuth bir uygulamanın ne yapabileceğini cevaplar, kullanıcının kim olduğunu değil; kullanıcıları başka bir sağlayıcıyla giriş yaptırmak OAuth üzerine kurulu OpenID Connect ile yapılır. İkincisi bir JWT'ye imzasını, yayıncısını, hedef kitlesini ve süresini denetlemeden güvenmektir: bir token'ı çözmek onu doğrulamak değildir.

| Özellik | JWT | OAuth |
| --- | --- | --- |
| Ne olduğu | Bir token biçimi | Bir yetkilendirme çerçevesi: akışlar bütünü |
| Cevapladığı soru | Token'ın ne söylediği ve değiştirilip değiştirilmediği | Bir uygulamanın bir kullanıcı adına API çağırma iznini nasıl aldığı |
| Tanımlandığı yer | RFC 7519 | RFC 6749 (OAuth 2.0) |
| Parçaları | Bir başlık, subject ve son kullanma gibi claim'ler ve bir imza | Roller: istemci, kullanıcı, yetkilendirme sunucusu, kaynak sunucusu |
| Kullanıldığı yer | Erişim token'ları, ID token'ları ve oturum token'ları | Bir uygulamanın takviminizi okuması gibi devredilmiş erişim |
| Diğeri olmadan çalışır mı? | Evet, imzalı token gereken her yerde | Evet, sunucunun denetlediği opak token'larla |
| Yaygın hata | İmzayı doğrulamadan çözmek | Onu tek başına bir giriş protokolü olarak kullanmak |

## JWT şu durumlarda doğru seçim

- Servislerin, merkezî bir sunucuyu çağırmadan bir token'ı kendi başlarına doğrulaması gerekiyor.
- Bir token'ın içine ne gireceğine ve nasıl imzalanacağına karar veriyorsunuz.
- Kendi servisleriniz arasında kimliği taşımak için kompakt ve imzalı bir yola ihtiyacınız var.

## OAuth şu durumlarda doğru seçim

- Üçüncü taraf bir uygulamanın, servisinizdeki bir kullanıcının verilerine sınırlı erişime ihtiyacı var.
- Kullanıcılar parola paylaşmadan izin verebilmeli ve izni geri alabilmeli.
- Mevcut istemcilerin ve kütüphanelerin zaten desteklediği standart akışlar istiyorsunuz.

## Sık sorulan sorular

**OAuth ile OpenID Connect aynı şey mi?**

Hayır. OpenID Connect, OAuth 2.0'ın üzerinde girişi ekleyen bir katmandır: JWT olan bir ID token uygulamaya kullanıcının kim olduğunu söyler.

**OAuth erişim token'ları her zaman JWT mi?**

Hayır. Spesifikasyon biçimi açık bırakır. Bazı sağlayıcılar API'lerin yerel olarak doğrulayabileceği JWT'ler verir; diğerleri ise API'nin yetkilendirme sunucusuna sorarak denetlediği opak metinler verir, bu da iptali kolaylaştırır.

**Kendi uygulamamın girişi için OAuth gerekir mi?**

Şart değil. Kendi kullanıcılarınız kendi uygulamanıza giriş yaparken bir oturum ya da kendi verdiğiniz bir token yeterlidir. OAuth, başka uygulamalar kullanıcılarınız adına iş yaptığında ya da kullanıcılar başka bir sağlayıcı üzerinden giriş yaptığında önem kazanır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
