Token Nedir? Access Token, Refresh Token ve Token Süresi (2026)

İngilizce'ye Geç

Token, kullanıcı kimliğini doğrulamak ve yetkilendirme yapmak için kullanılan dijital bir anahtardır. Kullanıcı adı ve şifreyi her istekte tekrar göndermek yerine token kullanılarak daha güvenli ve stateless bir yapı oluşturulur.

Access token ne kadar süre geçerlidir? Refresh token ne işe yarar? Token nerede saklanmalıdır? Bu rehberde token tabanlı authentication'ın tüm detaylarını kod örnekleri ve best practice'lerle açıklıyoruz.

Hızlı özet: Access token kısa ömürlüdür (15–30 dk), API erişimi için kullanılır. Refresh token uzun ömürlüdür, yeni access token üretmek için kullanılır. Token süresi dolunca kullanıcıyı çıkış yaptırmadan sessizce yenilenebilir.

Token Nedir ve Ne İşe Yarar?

Token, kullanıcı kimliğini doğrulamak ve sistemlere güvenli erişim sağlamak için kullanılan dijital bir veridir. Modern web ve mobil uygulamalarda kullanıcı adı ve şifreyi her istekte göndermek yerine token kullanılır.

Kullanıcı giriş yaptığında sunucu bir token üretir ve bunu istemciye gönderir. Bundan sonra istemci her API isteğinde bu token'ı header'a ekler. Sunucu token'ı doğrular ve erişime izin verir — şifre artık işin içinde yoktur.

Özellikle JWT (JSON Web Token), API güvenliği ve modern authentication sistemlerinde token yapısı vazgeçilmezdir.

Neden önemli? Token tabanlı authentication yapısı doğru kurulmazsa güvenlik açıklarına, yanlış saklanırsa hesap ele geçirme risklerine neden olabilir.

Token Türleri: Access Token ve Refresh Token

Access Token

  • Kısa ömürlüdür — genellikle 15–30 dakika geçerlidir.
  • API çağrılarında kullanılır.
  • Authorization: Bearer <token> header'ı ile gönderilir.
  • Kullanıcı kimliği, rol ve izin bilgileri taşıyabilir.

Refresh Token

  • Daha uzun ömürlüdür — günler veya haftalar geçerli olabilir.
  • Access token süresi dolduğunda yeni token almak için kullanılır.
  • Rotation uygulanırsa güvenlik seviyesi ciddi şekilde artar.
  • Kullanıcı arayüzden çıkış yapmadan sessizce arka planda çalışır.

Diğer Token Türleri

  • ID Token — OpenID Connect protokolünde kullanıcı bilgilerini taşır.
  • CSRF Token — Cross-Site Request Forgery saldırılarına karşı koruma sağlar.
  • Bearer Token — Token'ı taşıyan kişiye erişim hakkı tanıyan genel format.
Özet: Access Token → API erişimi için, kısa ömürlü. Refresh Token → Yeni access token üretmek için, uzun ömürlü.

Token Süresi Nedir? Ne Kadar Olmalı?

Token süresi, bir token'ın ne kadar süre geçerli kalacağını belirler. Bu süre dolduğunda token artık kullanılamaz ve yeni bir token alınması gerekir.

Access Token Süresi

Genellikle 15–30 dakika olarak ayarlanır. Kısa tutulmasının nedeni güvenliktir — token çalınsa bile kısa süre içinde geçersiz hale gelir.

  • Yüksek güvenlik gerektiren uygulamalar: 5–15 dakika
  • Standart web uygulamaları: 15–30 dakika
  • Düşük riskli uygulamalar: 1 saate kadar uzatılabilir

Refresh Token Süresi

Genellikle 7–30 gün arasında ayarlanır. "Beni hatırla" özelliği aktifse bu süre 90 güne kadar uzatılabilir.

Pratik öneri: Access token süresini kısa tut, refresh token'ı rotation ile kullan. Bu ikili yapı hem güvenlik hem de kullanıcı deneyimi açısından en iyi dengeyi sağlar.

Access ve Refresh Token Akışı

Modern authentication akışı genellikle aşağıdaki şekilde çalışır:

  1. Kullanıcı giriş yapar — sunucu access token ve refresh token üretir.
  2. İstemci her API isteğinde access token gönderir.
  3. Access token süresi dolduğunda sunucu 401 Unauthorized döner.
  4. İstemci refresh token ile yeni access token ister.
  5. Sunucu yeni token üretir, eski refresh token'ı geçersiz kılar (rotation).
  6. Kullanıcı işlemlerine kesinti yaşamadan devam eder.
Login İsteği
     ↓
Access Token + Refresh Token üretilir
     ↓
Her API isteğinde Access Token gönderilir
     ↓
Access Token süresi dolar → 401 Unauthorized
     ↓
Refresh Token ile yeni Access Token istenir
     ↓
Yeni Access Token + Yeni Refresh Token (rotation)
     ↓
Kullanıcı kesintisiz devam eder

Token Nerede Saklanmalı?

Token saklama yöntemi, güvenliğin en kritik parçasıdır. Özellikle refresh token'ın güvenli şekilde saklanması gerekir.

  • Access token mümkünse memory veya state içinde tutulmalıdır — sayfa yenilenince zaten yenilenir.
  • Refresh token güvenli bir storage alanında saklanmalıdır.

Platform Bazında Öneriler

  • Web: HttpOnly + Secure Cookie — JavaScript erişimine kapalı, XSS'e karşı güvenli.
  • iOS: Keychain — işletim sistemi seviyesinde şifreli saklama.
  • Android: EncryptedSharedPreferences veya Keystore.
Dikkat: Web uygulamalarında localStorage kullanımı XSS saldırılarına karşı savunmasızdır. Refresh token için HttpOnly Cookie tercih edin.
// Giriş başarılı
storeSecure('refresh_token', refreshToken);  // HttpOnly Cookie
store('access_token', accessToken);          // Memory/State

// API isteği
if (isAccessTokenValid()) {
    useAccessToken();
} else {
    refreshAccessToken();
}

// Uygulama yeniden açıldığında
if (refreshTokenExists()) {
    refreshAccessToken();  // Sessizce yeni token al
} else {
    showLoginScreen();     // Giriş ekranına yönlendir
}

Token Güvenliği ve Best Practices (2026)

Refresh Token Rotation

Her kullanımda yeni refresh token üretilmeli, eski token geçersiz hale getirilmelidir. Bu yöntem replay saldırılarına karşı güçlü koruma sağlar. Eski token tekrar kullanılmaya çalışılırsa tüm oturum iptal edilmelidir.

Ek Güvenlik Katmanları

  • Refresh endpoint'leri için rate limiting uygulanmalıdır.
  • Logout işleminde refresh token sunucu tarafında iptal edilmelidir.
  • Tüm token trafiği HTTPS üzerinden taşınmalıdır.
  • Şüpheli kullanımda (farklı IP, konum) token geçersiz kılınabilir.
Pratik öneri: Logout işleminde refresh token'ı iptal edin ve refresh endpoint'ine rate limiting ekleyin. Bu iki adım güvenliği önemli ölçüde artırır.

Avantajlar ve Dezavantajlar

Avantajlar

  • Stateless mimari sayesinde ölçeklenebilirlik sağlar — sunucu oturum tutmaz.
  • Modern web ve mobil uygulamalarla uyumludur.
  • Kullanıcı deneyimini bozmadan güvenli authentication akışı sunar.
  • Mikroservis mimarilerinde merkezi auth sunucusuyla kolayca entegre olur.

Dezavantajlar ve Riskler

  • Refresh token çalınırsa ciddi güvenlik riski oluşabilir.
  • Yanlış saklama yöntemleri XSS veya token theft riskini artırır.
  • Rotation, blacklist ve revocation yapıları mimari karmaşıklık getirebilir.
  • JWT token içeriği şifrelenmez, sadece imzalanır — hassas veri konulmamalıdır.

Sık Sorulan Sorular

Token nedir kısaca?

Token, kullanıcı kimliğini doğrulamak ve erişim yetkisini taşımak için kullanılan dijital bir anahtardır. Şifre yerine token kullanmak hem daha güvenli hem de daha ölçeklenebilir bir yapı sağlar.

Token süresi nedir, ne kadar olmalı?

Token süresi, token'ın geçerli kalacağı süredir. Access token için 15–30 dakika, refresh token için 7–30 gün önerilir. Süre kısaldıkça güvenlik artar ama kullanıcı deneyimi etkilenebilir — ikisi arasındaki dengeyi ihtiyaca göre kurun.

Access token ile refresh token arasındaki fark nedir?

Access token API erişimi için kullanılır ve kısa ömürlüdür (15–30 dk). Refresh token ise yeni access token üretmek için kullanılır ve çok daha uzun süre geçerlidir (günler/haftalar).

JWT bir token mıdır?

Evet. JWT (JSON Web Token), en yaygın kullanılan token formatlarından biridir. Header, payload ve signature olmak üzere üç bölümden oluşur. Payload kısmı şifrelenmez — sadece imzalanır, bu yüzden hassas veri konulmamalıdır.

Refresh token çalınırsa ne olur?

Rotation ve blacklist sistemi uygulanıyorsa eski token kullanılmaya çalışıldığında sistem bunu algılar ve tüm oturumu iptal eder. Bu yüzden refresh token rotation kritik bir güvenlik önlemidir.

Access token bulunamadı hatası neden alınır?

Bu hata genellikle token'ın süresi dolduğunda, yanlış header formatı kullanıldığında (Bearer prefix eksik) veya token storage'dan silindiğinde alınır. Çözüm: refresh token ile yeni access token alın ya da kullanıcıyı yeniden giriş yaptırın.

Sonuç

Token tabanlı authentication, modern uygulamalarda güvenliğin temel yapı taşlarından biridir. Access token ve refresh token mantığını doğru kurmak, token süresini ihtiyaca göre ayarlamak ve token'ı güvenli şekilde saklamak hem güvenlik hem de kullanıcı deneyimi açısından büyük fark yaratır.

JWT yapısını daha detaylı öğrenmek için JWT Nedir? içeriğine göz atabilirsiniz.

Etiketler: token nedir access token refresh token token süresi jwt authentication bearer token

Son Güncelleme: 2026

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Güncel yazılım teknolojilerinin takip edildiği blog.

Spring Boot ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *