🔐 Muzibu.com.tr - Session Auth Sorunu

Login yapılıyor ancak session tanınmıyor, header'da "Giriş Yap / Üye Ol" görünüyor
📅 12 Aralık 2025 🎯 muzibu.com (Tenant 1001) 🔴 KRİTİK - Auth Bypass Sorunu

🚨 Sorun Tanımı

Kullanıcı Bildirimi

"muzibu.com giriş yapmama rağmen 'Giriş Yap / Üye Ol' yazıyor. Girişlerimi header ve sidebar'da tanımıyor."

Teknik Tespit

Login İşlemi: Kullanıcı /login sayfasından form submit ediyor

Backend Response: Login başarılı, ana sayfaya redirect yapılıyor

Session Problemi: Redirect sonrası auth()->check() FALSE dönüyor

Alpine.js State: isLoggedIn: false olarak başlatılıyor

📊 Console Log Analizi

Browser Console Çıktısı

Satır 4:  Navigated to https://muzibu.com/login
Satır 11: Navigated to https://muzibu.com/
Satır 18: player-core.js:231 Muzibu initialized {isLoggedIn: false, user: null}
                

🔴 KRİTİK BULGU:

Login sonrası ana sayfaya redirect yapılmış ANCAK Alpine.js başlatılırken isLoggedIn: false değeri almış. Bu demek oluyor ki backend auth()->check() FALSE döndü!

Storage Access Hataları

Uncaught (in promise) Error: Access to storage is not allowed from this context.
                

ℹ️ Bu hata localStorage erişim kısıtlamasından kaynaklanıyor (browser privacy/extension). Auth sorunuyla doğrudan ilgili DEĞİL.

🔍 Backend Kod Analizi

1

app.blade.php (Satır 265)

isLoggedIn: {{ auth()->check() ? 'true' : 'false' }},
                            

Alpine.js config'i backend'den alıyor. Eğer auth()->check() FALSE dönerse, isLoggedIn da false oluyor.

⚠️ SORUN: Login sonrası redirect edildiğinde auth()->check() FALSE dönüyor!

2

AuthenticatedSessionController::store()

$request->authenticate();           // ✅ Login işlemi
$request->session()->regenerate();  // ✅ Session yenileme
Auth::check();                      // ✅ Login sonrası TRUE döner
return redirect('/');               // ✅ Ana sayfaya yönlendir
                            

Login controller doğru çalışıyor. Session regenerate ediliyor, Auth::check() TRUE dönüyor.

✅ İYİ HABER: Login flow'u backend'de doğru çalışıyor. Sorun redirect SONRASINDA ortaya çıkıyor!

3

Session Config (.env)

SESSION_DRIVER=redis
SESSION_LIFETIME=10080
SESSION_DOMAIN=null
SESSION_SECURE_COOKIE=true
SESSION_SAME_SITE=none
SESSION_HTTP_ONLY=true
                            

Driver: Redis (çalışıyor - PONG alındı)

Lifetime: 10080 dakika (7 gün)

⚠️ Domain: null (sadece muzibu.com için)

⚠️ Secure: true (sadece HTTPS)

⚠️ SameSite: none (cross-site izni)

⚠️ OLASI SORUN: SameSite=none + Secure=true kombinasyonu bazı durumlarda cookie set etmeyebilir!

🎯 Kök Neden Analizi

❌ Hipotez 1: Session Cookie Set Edilmiyor

Olasılık: YÜKSEKstrong>

Sebep: Browser Session cookie'yi kabul etmiyor (SameSite/Secure problemi)

Test: Network tab'ında Set-Cookie header kontrolü gerekli

⚠️ Hipotez 2: Session Cookie Gönderilmiyor

Olasılık: ORTA

Sebep: Cookie set edildi ama redirect sonrası browser göndermiyor

Test: Redirect GET isteğinde Cookie header kontrolü

⚠️ Hipotez 3: Middleware Session Okuyamıyor

Olasılık: DÜŞÜK

Sebep: StartSession middleware çalışmıyor veya Redis bağlantı hatası

Test: Redis connection ve middleware sıralaması kontrolü

ℹ️ Hipotez 4: Browser Cache Problemi

Olasılık: ÇOK DÜŞÜK

Sebep: Eski cached HTML gösteriliyor

Test: Hard refresh (Ctrl+Shift+R) veya Incognito mode

✅ Çözüm Önerileri (Öncelik Sırasıyla)

1

Network Tab Analizi (En Kritik!) ZORUNLU

Neden Gerekli: Session cookie'nin gerçekten set edilip edilmediğini görmek için

Adımlar:

  1. F12 → Network tab
  2. "Preserve log" işaretle (kayıtlar silinmesin)
  3. Logout yap
  4. Login formunu doldur ve gönder
  5. /login POST isteğine tıkla
  6. Response Headers'da Set-Cookie: tuufi_session=... var mı kontrol et
  7. Redirect sonrası / GET isteğine tıkla
  8. Request Headers'da Cookie: tuufi_session=... var mı kontrol et

✅ Beklenen Sonuç: Login POST response'unda Set-Cookie olmalı, redirect GET request'inde Cookie header olmalı.

2

SameSite Cookie Ayarını Değiştir Yüksek Öncelik

Neden: SameSite=none bazı browser'larda sorun çıkarabilir

.env dosyasında değişiklik:

SESSION_SAME_SITE=none    # ❌ Kaldır
SESSION_SAME_SITE=lax     # ✅ Ekle

Sonra cache temizle:

php artisan config:clear
php artisan cache:clear
3

Laravel Log Kontrolü Orta Öncelik

Neden: Login işleminin gerçekten başarılı olup olmadığını görmek için

Log kontrolü:

sudo grep "LOGIN" storage/logs/laravel-$(date +%Y-%m-%d).log | tail -20

Aranacak: "🔐 LOGIN COMPLETE" mesajı ve auth_check_final: YES/NO

4

Session Driver Test Düşük Öncelik

Neden: Redis bağlantısı veya session storage sorunu olabilir

Geçici olarak database driver'a geç:

# .env dosyasında
SESSION_DRIVER=database    # Geçici test için
php artisan session:table
php artisan migrate
php artisan config:clear

ℹ️ Eğer database driver'la çalışırsa, Redis session storage problemi var demektir.

5

Browser Debug - Cookie Kontrolü Test

Neden: Browser'ın cookie'yi saklayıp saklamadığını görmek için

Console'da çalıştır:

// Tüm cookie'leri göster
document.cookie

// Session cookie'yi bul
document.cookie.split(';').find(c => c.includes('tuufi_session'))

✅ Beklenen: tuufi_session cookie görünmeli. Yoksa browser kabul etmiyor demektir!

⚡ Hızlı Test Senaryosu

🧪 3 Dakikada Sorun Tespiti

1️⃣

Browser'ı tamamen kapat, yeni pencere aç

Cache'i sıfırla

2️⃣

F12 → Network tab → "Preserve log" işaretle

Tüm HTTP trafiğini kaydet

3️⃣

Login yap, /login POST isteğine tıkla

Response Headers → Set-Cookie var mı?

4️⃣

Redirect sonrası / GET isteğine tıkla

Request Headers → Cookie var mı?

📸 Screenshot al ve paylaş:

  • /login POST → Response Headers
  • / GET → Request Headers
  • Console'da document.cookie çıktısı