Kullanıcı login yapınca otomatik logout oluyor - Çift session check sistemi çakışması
Sorun: Kullanıcı Muzibu'ya giriş yapıyor, ama sistem hemen ardından otomatik çıkış yapıyor. Kullanıcı giriş yapamıyor.
❌ Kullanıcı Deneyimi:
🔍 Neden Oluyor?
Sistemde iki farklı oturum kontrol mekanizması var ve birbirleriyle çakışıyorlar. Biri "kullanıcı oturumda mı?" diye kontrol ederken, diğeri "oturum DB'de kayıtlı mı?" diye kontrol ediyor. Login sonrası bu iki kontrol aynı anda çalışıyor ve yarış durumu (race condition) oluşuyor.
Kullanıcı login olduğunda, sistem oturum bilgisini veritabanına kaydetmesi gerekiyor. Ama kontrol mekanizmaları çok hızlı çalışıyor (2-5 saniye) ve bazen oturum henüz kaydedilmeden kontrol yapılıyor. Sonuç: "Oturum bulunamadı, çıkış yap!" ❌
resources/views/themes/muzibu/components/session-check.blade.php
/api/session/check
routes/web.php:22
public/themes/muzibu/js/player/features/session.js
/api/auth/check-session
routes/api.php:88 (AuthController)
Login → registerSession()
AuthController login metodu (satır 39) session'ı DB'ye kaydetmeye başlıyor
Sayfa Yükleniyor
session-check.blade.php ve session.js ikisi de aktif oluyor
session.js → 2 saniye sonra checkSession() çağrıyor
Ama registerSession() henüz tamamlanmamış olabilir!
/api/auth/check-session → Session bulamıyor
AuthController checkSession() (satır 212): if (!$deviceService->sessionExists($user)) { Auth::logout(); }
❌ Kullanıcı LOGOUT!
"Başka cihazdan giriş yapıldı" modal'ı gösteriliyor
resources/views/themes/muzibu/components/session-check.blade.php
→ Satır 29: fetch('/api/session/check') her 5 saniyede bir
public/themes/muzibu/js/player/features/session.js
→ Satır 67: fetch('/api/auth/check-session') - 2 saniye sonra başlıyor
routes/web.php:22-68
→ /api/session/check endpoint tanımı (basit auth check)
routes/api.php:88
→ /api/auth/check-session endpoint (AuthController::checkSession)
app/Http/Controllers/Api/Auth/AuthController.php:164-267
→ checkSession() metodu - session DB kontrolü + logout logic
session-check.blade.php
component'ini devre dışı bırak veya sil
session.js
içindeki startSessionPolling() çağrısını devre dışı bırak
Component'i devre dışı bırak (if condition false yap) veya dosyayı tamamen sil
@if(false) {{-- DEVRE DIŞI --}}
Player'a entegre, device limit kontrolü yapıyor, yeterli
npm run prod && php artisan view:clear && php artisan responsecache:clear
Kullanıcı giriş yaptıktan sonra modal açılmamalı ve oturum devam etmeli