Token Nedir? Access Token, Refresh Token ve Token Süresi (2026)
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.
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.
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.
Access ve Refresh Token Akışı
Modern authentication akışı genellikle aşağıdaki şekilde çalışır:
- Kullanıcı giriş yapar — sunucu access token ve refresh token üretir.
- İstemci her API isteğinde access token gönderir.
- Access token süresi dolduğunda sunucu 401 Unauthorized döner.
- İstemci refresh token ile yeni access token ister.
- Sunucu yeni token üretir, eski refresh token’ı geçersiz kılar (rotation).
- 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.
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.
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 unutmak →
Authorization: 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.