Files
LabWise/server/src/auth/middleware.ts

31 lines
749 B
TypeScript
Raw Normal View History

import { Request, Response, NextFunction } from 'express';
2026-04-02 14:42:35 -05:00
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' });
}
}