UNPKG

@replyke/express

Version:

Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.

31 lines (30 loc) 1.05 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const jsonwebtoken_1 = __importDefault(require("jsonwebtoken")); const config_1 = require("../config"); const requireUserAuth = (req, res, next) => { if (req.isMaster || req.isService) { next(); return; } const authHeader = req.headers["authorization"]; if (!authHeader) { res.sendStatus(401); return; } const token = authHeader.split(" ")[1]; const { accessTokenSecret } = (0, config_1.getCoreConfig)(); jsonwebtoken_1.default.verify(token, accessTokenSecret, (err, decoded) => { if (err || !decoded || typeof decoded === "string" || !decoded.sub) { console.warn("Unauthorized request"); res.sendStatus(403); return; } req.userId = decoded.sub; next(); }); }; exports.default = requireUserAuth;