export const useAuth = () => { const tokenCookie = useCookie('token') const authMessageCookie = useCookie('authMessage') const router = useRouter() const config = useRuntimeConfig() const isLoggedIn = () => { if (!import.meta.client) return false const token = localStorage.getItem('token') const tenantId = localStorage.getItem('tenantId') return !!(token && tenantId) } const logout = async () => { if (import.meta.client) { // Call backend logout endpoint try { const token = localStorage.getItem('token') const tenantId = localStorage.getItem('tenantId') if (token) { await fetch(`${config.public.apiBaseUrl}/api/auth/logout`, { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, ...(tenantId && { 'x-tenant-id': tenantId }), }, }) } } catch (error) { console.error('Logout error:', error) } // Clear local storage localStorage.removeItem('token') localStorage.removeItem('tenantId') localStorage.removeItem('user') // Clear cookie for server-side check tokenCookie.value = null // Set flash message for login page authMessageCookie.value = 'Logged out successfully' // Redirect to login page router.push('/login') } } const getUser = () => { if (!import.meta.client) return null const userStr = localStorage.getItem('user') return userStr ? JSON.parse(userStr) : null } return { isLoggedIn, logout, getUser, } }