2026-06-25 00:19:26 +05:30

20 lines
737 B
JavaScript

import jwt from "jsonwebtoken";
import { config } from "../config.js";
import { prisma } from "../db.js";
export async function requireAuth(request, response, next) {
try {
const [scheme, token] = String(request.headers.authorization || "").split(" ");
if (scheme !== "Bearer" || !token) {
return response.status(401).json({ error: "Authentication required" });
}
const payload = jwt.verify(token, config.JWT_SECRET);
const user = await prisma.user.findUnique({ where: { id: payload.sub } });
if (!user) return response.status(401).json({ error: "Account no longer exists" });
request.user = user;
next();
} catch {
response.status(401).json({ error: "Invalid or expired session" });
}
}