# Refresh Token (Yenileme Token'ı)

Adres: https://softwaredictionary.org/tr/terimler/refresh-token
Kategori: Güvenlik
Son güncelleme: 2026-10-03
Okunuşu: rifreş tokın

Kısaca: Refresh token, uygulamanın yeniden giriş istemeden kısa ömürlü yeni access token'lar almak için kullandığı uzun ömürlü kimlik bilgisidir.

## Refresh token nedir?

Access token'lar her API isteğiyle gönderilir; bu yüzden biri sızarsa zararı sınırlamak için kısa ömürlü tutulur, çoğu zaman beş ile altmış dakika arası. Her saat yeniden giriş yapmak çekilmez olurdu; bu yüzden giriş sırasında sunucu bir refresh token da verir. Access token'ın süresi dolduğunda uygulama refresh token'ı token uç noktasına gönderir ve yeni bir access token alır.

Refresh token'lar güçlü ve uzun ömürlü olduğu için access token'lardan daha fazla korumaya ihtiyaç duyar. Yalnızca yetkilendirme sunucusuna gönderilir, sıradan API'lere asla. Tarayıcılarda en iyi, betiklerin okuyamadığı httpOnly ve secure çerezlerde; mobilde de sistem anahtarlığında (keychain) saklanır. Sunucular onları, örneğin kullanıcı çıkış yaptığında ya da parolasını değiştirdiğinde iptal edebilir.

Refresh token rotasyonu bir güvence daha ekler: her kullanım yeni bir refresh token döndürür ve eskisini geçersiz kılar. Çalınmış bir token, gerçek uygulama onu zaten yeniledikten sonra kullanılırsa sunucu bu tekrar kullanımı görür, bütün zinciri iptal eder ve yeni bir girişi zorunlu kılar. Birçok kimlik sağlayıcı bir refresh token'ın toplam ömrünü ve hareketsizlik süresini de sınırlar.

Sık yapılan bir yanlış, refresh token'ın yalnızca uzun süre geçerli bir access token olduğunu düşünmektir. Farklı bir hedef kitlesi olan farklı bir kimlik bilgisidir: API'ler onu reddetmelidir ve araya giren herhangi bir betiğin onu çalabileceği localStorage'da asla saklanmamalıdır.

## Önemli noktalar

- Refresh token'lar yeni bir giriş olmadan yeni access token'lar alır.
- Access token'lar sızarlarsa zararı sınırlamak için kısa ömürlü kalır.
- Refresh token'lar yalnızca token uç noktasına gider ve güçlü koruma ister.
- Rotasyon her kullanımda yeni bir refresh token verir ve tekrar kullanımı yakalar.
- Onları httpOnly çerezlerde ya da anahtarlıkta saklayın, asla localStorage'da değil.

## Örnek: Süresi dolan bir access token'ı yenilemek

```javascript
async function apiFetch(url, options = {}) {
  let response = await fetch(url, { ...options, credentials: "include" });

  if (response.status === 401) {
    // The access token expired: ask the auth server for a new one.
    // The refresh token travels in an httpOnly cookie the script can't read.
    const refreshed = await fetch("/auth/refresh", { method: "POST", credentials: "include" });
    if (!refreshed.ok) {
      window.location.assign("/login");        // refresh token expired or revoked
      return;
    }
    response = await fetch(url, { ...options, credentials: "include" });   // retry once
  }
  return response;
}
```

## Sık sorulan sorular

**Access token ile refresh token arasındaki fark nedir?**

Access token, çağıranın neler yapabileceğini kanıtlamak için API'lere gönderilir ve hızla sona erer. Refresh token ise yalnızca yeni access token'lar almak için yetkilendirme sunucusuna gönderilir ve çok daha uzun sürer.

**Refresh token'lar nerede saklanmalı?**

Web uygulamalarında secure, httpOnly ve SameSite bir çerezde ya da tamamen bir backend sunucusunda. Mobil uygulamalarda ise iOS Keychain ya da Android Keystore gibi platformun güvenli depolamasında.

**Refresh token rotasyonu nedir?**

Her kullanıldığında yeni bir refresh token verip eskisini geçersiz kılmaktır. Eski bir token tekrar ortaya çıkarsa sunucu onun çalındığını anlar ve oturumu iptal eder.

---

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