ghostguild-org/app/middleware/auth.js

36 lines
No EOL
1.3 KiB
JavaScript

export default defineNuxtRouteMiddleware(async (to, from) => {
// Skip on server-side rendering
if (process.server) {
console.log('🛡️ Auth middleware - skipping on server')
return
}
const { memberData, checkMemberStatus } = useAuth()
const { openLoginModal } = useLoginModal()
console.log('🛡️ Auth middleware (CLIENT) - route:', to.path)
console.log(' - memberData exists:', !!memberData.value)
console.log(' - Running on:', process.server ? 'SERVER' : 'CLIENT')
// If no member data, try to check authentication
if (!memberData.value) {
console.log(' - No member data, checking authentication...')
const isAuthenticated = await checkMemberStatus()
console.log(' - Authentication result:', isAuthenticated)
if (!isAuthenticated) {
console.log(' - ❌ Authentication failed, showing login modal')
// Open login modal instead of redirecting
openLoginModal({
title: 'Sign in to continue',
description: 'You need to be signed in to access this page',
dismissible: true,
redirectTo: to.fullPath,
})
// Abort navigation - stay on current page with modal open
return abortNavigation()
}
}
console.log(' - ✅ Authentication successful for:', memberData.value?.email)
})