import { Request, Response, NextFunction } from 'express'; import { auth } from './auth.js'; import { fromNodeHeaders } from 'better-auth/node'; declare global { namespace Express { interface Request { user?: { id: string; email: string; name: string }; sessionId?: string; } } } export async function requireAuth(req: Request, res: Response, next: NextFunction) { try { const session = await auth.api.getSession({ headers: fromNodeHeaders(req.headers), }); if (!session) { return res.status(401).json({ error: 'Unauthorized' }); } req.user = session.user; req.sessionId = session.session.id; next(); } catch { return res.status(401).json({ error: 'Unauthorized' }); } }