const asyncHandler = require("express-async-handler"); const jwt = require("jsonwebtoken"); const User = require("../models/userModels"); const validateToken = asyncHandler(async (req, res, next) => { let token = req.headers.authorization || req.headers.Authorization; if (!token) { res.status(401); throw new Error("User is not authorized(N)"); } else { const tokenA = await User.findOne({ token }) if (tokenA) { jwt.verify(token, process.env.ACCESS_TOKEN_SECERT, (err, decoded) => { if (err) { res.status(401); throw new Error("User is not authorized(JWT E)"); } req.user = decoded.user; next(); }); } else { res.status(401); throw new Error("User is not authorized(DB N)"); } } }); module.exports = { name: "validateToken", run: validateToken };