
Bilgi Merkezi / OAuth 2.0 ve JWT Nedir?
OAuth 2.0, bir kullanıcının şifresini paylaşmadan üçüncü parti bir uygulamaya sınırlı erişim yetkisi vermesini sağlayan yetkilendirme protokolüdür. JWT (JSON Web Token) ise bu yetkilendirme sürecinde kullanılan, kullanıcı bilgisini imzalı ve durumsuz (stateless) biçimde taşıyan token formatıdır. Kısaca: OAuth "izin verme" işini, JWT ise "kimlik bilgisini taşıma" işini yapar.
"Google ile Giriş Yap" veya "Facebook ile Devam Et" butonlarının arkasında çalışan sistem OAuth 2.0'dır. Modern web ve mobil uygulamaların büyük kısmı, kullanıcı kimlik doğrulama ve yetkilendirme işlemlerini bu protokol ile JWT tabanlı token'lar üzerinden yürütür.
Bu rehberde OAuth 2.0'ın nasıl çalıştığını, akış türlerini (flow), JWT'nin yapısını, güvenlik risklerini ve modern kimlik doğrulama best practice'lerini sade bir dille ele alıyoruz.
OAuth 2.0, bir kullanıcının bir servisteki (ör. Google hesabı) verilerine, şifresini hiçbir zaman üçüncü bir uygulamayla paylaşmadan, sınırlı ve geri alınabilir erişim izni vermesini sağlayan açık standarttır. Yetkilendirme (authorization) protokolüdür; kimlik doğrulama (authentication) protokolü değildir.

OAuth 2.0 Yetkilendirme Akışı ve JWT Yapısı
Tipik bir OAuth 2.0 akışı (Authorization Code Flow) dört temel roller ve adımlar üzerinden ilerler:
İstemci uygulama (client), kullanıcıyı yetkilendirme sunucusuna (ör. Google'ın giriş ekranına) yönlendirir ve hangi kapsamlarda (scope) erişim istediğini belirtir.
Kullanıcı kendi hesabıyla giriş yapar ve istenen izinleri onaylar. Bu aşamada şifre, hiçbir zaman istemci uygulamaya iletilmez; yalnızca yetkilendirme sunucusunda kalır.
Yetkilendirme sunucusu, istemciye kısa ömürlü bir "authorization code" döndürür. İstemci bu kodu, kendi client secret'ı ile birlikte token endpoint'ine göndererek gerçek token'ları talep eder.
Sunucu, genellikle JWT formatında bir access token (kısa ömürlü, API isteklerinde kullanılır) ve bir refresh token (uzun ömürlü, yeni access token almak için kullanılır) döndürür.
JWT, nokta (.) ile ayrılmış üç bölümden oluşan, Base64Url ile kodlanmış bir metin dizisidir: header.payload.signature. Sunucunun her istekte veritabanına bakmasına gerek kalmadan kullanıcıyı doğrulamasını sağladığı için "durumsuz (stateless) kimlik doğrulama" olarak adlandırılır.
| Bölüm | İçerik | Amaç |
|---|---|---|
| Header | Token tipi ve imza algoritması (ör. HS256, RS256) | Token'ın nasıl doğrulanacağını belirtir |
| Payload | Kullanıcı ID, roller, geçerlilik süresi (exp) gibi claim'ler | Taşınan asıl veri |
| Signature | Header + payload'ın gizli anahtarla imzalanmış hâli | Verinin değiştirilmediğini doğrular |
Önemli: JWT'nin payload kısmı yalnızca Base64 ile kodlanmıştır, şifrelenmemiştir. Yani herkes bir JWT'yi çözüp içeriğini okuyabilir. Güvenlik, imzanın (signature) doğruluğuna dayanır; token'ın içine şifre veya hassas veri asla konulmamalıdır.
→ En sık karşılaşılan hatalardan biri, JWT'nin "şifrelenmiş" olduğunu düşünüp içine hassas veri koymaktır. JWT yalnızca imzalıdır, şifreli değildir; bu nedenle hassas bilgiler yalnızca sunucu tarafında, token dışında saklanmalıdır.
OAuth 2.0 yalnızca yetkilendirme (erişim izni) sağlar; kullanıcının kim olduğunu doğrulamaz. OpenID Connect, OAuth 2.0'ın üzerine kimlik doğrulama katmanı ekleyerek kullanıcının kimliğini kanıtlayan bir "id_token" (JWT formatında) sunar.
Hayır, JWT şifreli değildir; yalnızca Base64 ile kodlanmış ve imzalanmıştır. İçeriği herkes okuyabilir ama imza sayesinde değiştirilip değiştirilmediği doğrulanabilir. Bu yüzden token içine şifre gibi hassas veriler konulmamalıdır.
Access token, API isteklerinde kullanılan kısa ömürlü token'dır. Refresh token ise access token süresi dolduğunda, kullanıcıyı tekrar giriş yaptırmadan yeni bir access token almak için kullanılan uzun ömürlü token'dır.
Önerilmez. localStorage, JavaScript tarafından erişilebilir olduğu için XSS saldırılarına karşı savunmasızdır. Bunun yerine httpOnly ve Secure bayraklı cookie'ler kullanılması tavsiye edilir.
OAuth 2.0 ve JWT, modern web ve mobil uygulamalarda kullanıcı yetkilendirmesinin ve durumsuz kimlik doğrulamanın temelini oluşturur. Doğru akış seçimi, kısa token ömrü ve güvenli saklama stratejileriyle bu sistemler hem kullanıcı deneyimini hem de uygulama güvenliğini önemli ölçüde artırır.
Site Tasarım TR olarak OAuth 2.0 entegrasyonu, JWT tabanlı kimlik doğrulama mimarisi ve API güvenliği konularında profesyonel destek sunuyoruz. Projeniz için bize ulaşın.

Server-First ve Edge Rendering

Page Speed Optimization Nedir?

Yapay Zeka Destekli Web Tasarımı

Agile & Scrum Nedir?

Hosting Nedir?

CSS Nedir?

Jamstack Mimarisi Nedir?

Core Web Vitals Nedir?

Web3 ve Decentralized Web

Frontend vs Backend Nedir?

UI/UX Tasarım Nedir?

Lazy Loading Nedir?

DNS Nedir?

Next.js Nedir?

Remix.run Nedir?

Docker Nedir?

Google’da İlk Sayfaya Çıkmak

JavaScript Nedir?

SvelteKit Nedir?

PWA Nedir?

Keyword Research Nedir?

Vite Nedir?

CDN Nedir?

Zero-Click Searches ve Featured Snippets Nedir?

MongoDB Nedir?

Google Analytics Nedir?

Motion UI ve Mikro Animasyonlar

Astro Nedir?

HTTP/3 ve QUIC Nedir?

PostgreSQL Nedir?

HTML Nedir?

Webhook Nedir?

API Nedir?

Meta Tags Nedir?

Backlink Nedir?
1800+ Unicode emoji ile web tasarımlarınıza duygusal ifadeler ekleyin. Arama, kategori filtreleme ve 5 favori grubu.
URL, Wi-Fi, vCard, metin gibi verilerinizi saniyeler içinde özelleştirilebilir QR koda çevirin. Logo, renk ve SVG/PNG indirme desteği.
PNG → JPG, JPG → PNG, WEBP → JPG/PNG, HEIC → JPG gibi en popüler formatlar arasında saniyeler içinde dönüşüm yapın. Kalite ayarı, toplu işlem desteği ve tamamen tarayıcıda – indirme olmadan!
Markdown metinlerinizi yazın ve anında canlı HTML önizlemesini görün. Başlıklar, listeler, kod blokları ve daha fazlası. Tarayıcıda, hızlı ve ücretsiz!
CSS kodlarınızı otomatik oluşturun: gölgeler, gradyanlar ve daha fazlası.
Web tasarımlarınız için renk paletleri oluşturun ve HEX, RGB kodlarını alın.
Tek PDF dosyasını istediğiniz sayfalara ayırın. Belirli sayfaları seçin veya aralık belirleyin, saniyeler içinde yeni PDF’ler oluşturun – tamamen tarayıcıda!
Birden fazla PDF dosyasını tek bir PDF’de birleştirin. Sıra değiştirme, önizleme ve yüksek kaliteli çıktı desteği. Tarayıcıda, hızlı ve ücretsiz!
PDF dosyalarınızı kalite kaybı minimumda %50-90 küçültün. Dosya boyutu seçimi, sayfa optimizasyonu ve tamamen tarayıcıda işlem – sunucuya yükleme yok!
Metin ve görselleri Base64 formatına dönüştürün veya Base64 kodunu çözün. API geliştirme ve veri aktarımı için vazgeçilmez.