Files
frontend/src/app/logout/page.tsx

47 lines
1.3 KiB
TypeScript
Raw Normal View History

'use client';
import { useEffect, useRef } from 'react';
import { signOut } from 'next-auth/react';
export default function LogoutPage() {
const hasStarted = useRef(false);
useEffect(() => {
if (hasStarted.current) return;
hasStarted.current = true;
// Clear localStorage tokens
localStorage.removeItem('accessToken');
localStorage.removeItem('refreshToken');
localStorage.removeItem('user');
// Sign out via NextAuth (clears session cookie), then manually redirect
signOut({ redirect: false })
.then(() => {
window.location.href = '/login';
})
.catch(() => {
window.location.href = '/login';
});
// Safety fallback - if signOut hangs, redirect after 3 seconds
setTimeout(() => {
window.location.href = '/login';
}, 3000);
}, []);
return (
<div className="min-h-screen flex items-center justify-center bg-white">
<div className="text-center">
<div className="w-12 h-12 border-4 border-[#e58625] border-t-transparent rounded-full animate-spin mx-auto mb-6" />
<h1 className="font-fractul font-bold text-[24px] text-[#00293D] mb-2">
Signing Out
</h1>
<p className="font-serif text-[14px] text-[#00293D]/60">
Please wait while we securely log you out...
</p>
</div>
</div>
);
}