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

İngilizce'ye Geç

Access token ve refresh token, modern kimlik doğrulama sistemlerinin temelini oluşturur. Kullanıcı adı ve şifreyi her istekte göndermek yerine token kullanılarak daha güvenli ve stateless bir yapı kurulur.

Bu rehberde token nedir, access token ile refresh token arasındaki farklar nelerdir, token süresi ne kadar olmalıdır ve güvenli şekilde nasıl saklanmalıdır sorularına net cevaplar veriyoruz.

Hızlı özet:
Access token → kısa ömürlü (15–30 dk), API erişimi için kullanılır.
Refresh token → uzun ömürlü, yeni access token üretmek için kullanılır.
Süre 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.

Access Token vs Refresh Token

Özellik Access Token Refresh Token
Amaç API erişimi sağlamak Yeni access token üretmek
Süre 15–30 dakika 7–30 gün (hatta 90 gün)
Kullanım yeri Her API isteğinde Sadece token yenileme endpoint’inde
Güvenlik riski Düşük (kısa ömürlü) Yüksek (uzun ömürlü, dikkatli saklanmalı)
Saklama önerisi Memory / State HttpOnly + Secure Cookie

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.

Token Süresi 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.

Sık Yapılan Hatalar

  • Refresh token’ı localStorage’da saklamak → XSS ile kolayca çalınabilir.
  • Access token süresini çok uzun tutmak → Çalınma durumunda risk penceresi büyür.
  • Refresh token rotation uygulamamak → Çalınan token uzun süre kullanılabilir.
  • Logout’ta token’ı iptal etmemek → Kullanıcı çıksa bile token geçerli kalır.
  • Bearer prefix’ini unutmakAuthorization: Bearer <token> formatı şarttı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.

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.

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: Ağustos 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 * *