"use client"; import { useSession, signOut } from "next-auth/react"; import { useRouter } from "next/navigation"; import { useEffect } from "react"; // JWT token'dan expiry bilgisini çıkar function getTokenExpiry(token: string | undefined): string { if (!token) return 'N/A'; try { const payload = JSON.parse(atob(token.split('.')[1])); if (payload.exp) { const expiryDate = new Date(payload.exp * 1000); const now = Date.now(); const remainingMs = expiryDate.getTime() - now; const remainingMinutes = Math.floor(remainingMs / 60000); if (remainingMs < 0) { return '⚠️ Token süresi dolmuş'; } else if (remainingMinutes > 60) { const hours = Math.floor(remainingMinutes / 60); const mins = remainingMinutes % 60; return `${hours} saat ${mins} dakika`; } else { return `${remainingMinutes} dakika`; } } } catch { return 'N/A'; } return 'N/A'; } export default function DashboardPage() { const { data: session, status } = useSession(); const router = useRouter(); useEffect(() => { if (status === "unauthenticated") { router.push("/auth/login"); } }, [status, router]); if (status === "loading") { return (
Yükleniyor...
); } if (!session) { return null; } return (

Dashboard

{session.error && (

Session Hatası

{session.error === 'RefreshAccessTokenError' ? 'Token yenileme başarısız. Lütfen tekrar giriş yapın.' : session.error}

)}

Session Bilgileri

Email:

{session.user?.email || 'N/A'}

İsim:

{session.user?.name || 'Belirtilmemiş'}

Access Token:
{session.accessToken || '❌ Token bulunamadı'}
{session.accessToken && (

⏱️ Kalan süre: {getTokenExpiry(session.accessToken)}

)}
Refresh Token:
{session.refreshToken || '❌ Token bulunamadı'}
{session.refreshToken && (

⏱️ Kalan süre: {getTokenExpiry(session.refreshToken)}

)}
Session Bitiş Tarihi:

{session.expires ? new Date(session.expires).toLocaleString('tr-TR', { dateStyle: 'medium', timeStyle: 'medium' }) : 'N/A'}

Kalan Süre:

{session.expires ? (() => { const expiryTime = new Date(session.expires).getTime(); const now = Date.now(); const remainingMs = expiryTime - now; const remainingMinutes = Math.floor(remainingMs / 60000); const remainingHours = Math.floor(remainingMinutes / 60); const remainingDays = Math.floor(remainingHours / 24); if (remainingMs < 0) { return '⚠️ Session süresi dolmuş (yeniden giriş yapın)'; } else if (remainingDays > 0) { return `${remainingDays} gün ${remainingHours % 24} saat`; } else if (remainingHours > 0) { return `${remainingHours} saat ${remainingMinutes % 60} dakika`; } else { return `${remainingMinutes} dakika`; } })() : 'N/A'}

Tüm Session Verisi

                  {JSON.stringify(session, null, 2)}
                
); }