deafmissoula-website/server/dist/middleware/auth.js

23 lines
No EOL
792 B
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.requireAuth = requireAuth;
const jose_1 = require("jose");
const secret = () => new TextEncoder().encode(process.env.JWT_SECRET ?? 'fallback-dev-secret');
async function requireAuth(req, res, next) {
const header = req.headers.authorization;
if (!header?.startsWith('Bearer ')) {
res.status(401).json({ error: 'Unauthorized' });
return;
}
try {
const token = header.slice(7);
const { payload } = await (0, jose_1.jwtVerify)(token, secret());
req.userId = payload.userId;
req.userRole = payload.role;
next();
}
catch {
res.status(401).json({ error: 'Invalid or expired token' });
}
}
//# sourceMappingURL=auth.js.map