doxa-maps-cdn/server/utils/auth.ts
2026-04-21 12:12:54 +01:00

26 lines
675 B
TypeScript

import jwt from 'jsonwebtoken'
import type { H3Event } from 'h3'
export function verifyToken(token: string) {
try {
return jwt.verify(token, useRuntimeConfig().jwtSecret) as { userId: string; email: string; display_name: string }
} catch {
return null
}
}
export function requireAuth(event: H3Event) {
const token = getCookie(event, 'auth-token')
const user = token ? verifyToken(token) : null
if (!user) {
throw createError({ statusCode: 401, statusMessage: 'Authentication required' })
}
return user
}
export function getAuthUser(event: H3Event) {
const token = getCookie(event, 'auth-token')
return token ? verifyToken(token) : null
}