import { nanoid } from 'nanoid' import { getHeader, createError } from 'h3' const tokens = new Map() const TOKEN_TTL = 24 * 60 * 60 * 1000 export function createToken(): string { const token = nanoid(32) tokens.set(token, Date.now() + TOKEN_TTL) return token } export function validateToken(token: string | undefined): boolean { if (!token) return false const expiry = tokens.get(token) if (!expiry) return false if (Date.now() > expiry) { tokens.delete(token) return false } return true } export function removeToken(token: string): void { tokens.delete(token) } export function requireAuth(event: any): void { const token = getHeader(event, 'x-auth-token') if (!validateToken(token)) { throw createError({ statusCode: 401, statusMessage: 'Unauthorized' }) } }