secure-mern
Version:
A lightweight yet powerful npm package to enhance security in MERN stack applications. Built with enterprise-grade architecture in mind, secure-mern helps you integrate essential security features with minimal configuration.
22 lines (17 loc) • 735 B
JavaScript
// middlewares/auth.js
const jwt = require("jsonwebtoken");
const User = require("../models/User");
const auth = async (req, res, next) => {
try {
const token = req.header("Authorization")?.replace("Bearer ", "");
if (!token) return res.status(401).json({ message: "Access denied. No token provided." });
const decoded = jwt.verify(token, process.env.JWT_SECRET);
const user = await User.findById(decoded.id).select("-password");
if (!user) return res.status(404).json({ message: "User not found" });
req.user = user;
next();
} catch (err) {
res.status(401).json({ message: "Invalid or expired token" });
}
};
module.exports = auth;