Files
aigen/server/middleware/auth.ts
T

25 lines
813 B
TypeScript

export default defineEventHandler((event) => {
if (!authEnabled()) return
const path = getRequestURL(event).pathname
if (
path.startsWith('/api/auth/login') ||
path.startsWith('/api/auth/callback') ||
path.startsWith('/api/auth/logout') ||
path.startsWith('/api/auth/me') ||
path.startsWith('/api/health') ||
path.startsWith('/api/monitor') ||
path.startsWith('/api/library/backup-ingest') ||
path.startsWith('/_nuxt') ||
path.startsWith('/favicon') ||
path === '/login'
) {
return
}
const user = getSessionUser(event)
if (user) return
if (path.startsWith('/api/')) {
throw createError({ statusCode: 401, statusMessage: 'Authentication required' })
}
return sendRedirect(event, path === '/studio-2' ? '/login?next=/studio-2' : '/login', 302)
})