UNPKG

setup-mern

Version:

A CLI tool to generate a MERN backend boilerplate in seconds!

28 lines (23 loc) 810 B
const jwt = require('jsonwebtoken'); const User = require('../models/User'); const { JWT_SECRET } = require('../config/envConfig'); exports.protect = async (req, res, next) => { try { let token; if (req.headers.authorization && req.headers.authorization.startsWith('Bearer')) { token = req.headers.authorization.split(' ')[1]; } if (!token) { throw new Error('You are not logged in! Please log in to get access.'); } const decoded = jwt.verify(token, JWT_SECRET); const user = await User.findById(decoded.id); if (!user) { throw new Error('The user belonging to this token no longer exists.'); } req.user = user; next(); } catch (err) { res.status(401).json({ status: 'error', message: err.message }); } };