Ana içeriğe geç

Auth Session Cache

Bu sayfa, session:{sid} key ailesinin Qapu içindeki işletim sözleşmesini tanımlar.

Bu key ailesi, JWT access token doğrulaması sonrası session aktiflik kontrolü, revoke yönetimi ve auth_version karşılaştırması için kullanılır.

Key Pattern

  • session:{sid}

Örnek:

  • session:sess_abc123

Redis DB Alanı

  • Önerilen DB: 0
  • Gerekçe: auth doğrulama hot-path'te çalışır, düşük gecikmeli erişim gerekir.

Owner Service

  • Primary writer: API Servisi / Auth modülü
  • Primary readers: API Servisi, internal gateway, gerekirse service-to-service auth middleware
  • Secondary writer: logout / revoke / security automation job'ları

Authoritative Source

  • Authoritative source: DB üzerindeki session veya auth state kaydı varsa o katman, aksi durumda session yaşam döngüsünün kanonik runtime kopyası
  • Redis rolü: aktif session state ve hızlı revoke kontrol katmanı

Kanonik Yapı

{
"user_id": 123,
"status": "active",
"auth_version": 7,
"created_at": "2026-04-16T12:00:00Z",
"expire_at": "2026-04-16T13:00:00Z"
}

Read / Write Paths

Read Path

  1. JWT doğrulanır.
  2. sid değeri çözülür.
  3. session:{sid} Redis'ten okunur.
  4. Session yoksa veya pasifse token reddedilir.
  5. auth_version eskiyse refresh veya reject uygulanır.

Write Path

  1. Login başarılı olur.
  2. Session oluşturulur.
  3. session:{sid} key'i Redis'e yazılır.
  4. Logout veya revoke durumunda key silinir ya da status pasif yapılır.

TTL ve Invalidation

  • TTL: access token ömrü kadar veya biraz uzun
  • Öneri: 1h access token için 1h - 2h

Invalidation tetikleri:

  1. logout
  2. force logout
  3. session expire
  4. user block / delete
  5. auth_version yükselmesi

Failure ve Drift Senaryoları

Senaryo A: Session key yok

  • Beklenen davranış: token reddedilir
  • Etki: login yenileme gerekir

Senaryo B: Session var ama auth_version stale

  • Beklenen davranış: reject veya refresh zorlanır
  • Etki: eski yetki bağlamı ile işlem yapılması önlenir

Senaryo C: Redis down

  • Beklenen davranış: güvenlik moduna göre fail-closed tercih edilir
  • Etki: doğrulama sertleşir, servis erişimi geçici kısıtlanabilir

Rebuild ve Recovery

Bu key tam rebuild odaklı değil, session yaşam döngüsü odaklıdır. Key kaybolursa kullanıcı yeniden login olur veya refresh akışı çalışır.

Gözlemlenebilirlik Metrikleri

  • auth_session_hit_ratio
  • auth_session_miss_total
  • auth_session_revoke_total
  • auth_session_stale_version_total
  • auth_session_expired_total

Çapraz Referanslar

  • /projects/qapu/services/api/jwt-auth-flow
  • /projects/qapu/services/redis/keyspace/user-auth-context
  • /projects/qapu/services/redis/keyspace/device-user-authz