diff --git a/middleware/validateTokenHandler.js b/middleware/VidoeValidate.js similarity index 100% rename from middleware/validateTokenHandler.js rename to middleware/VidoeValidate.js diff --git a/middleware/validateAdminTokenHandler.js b/middleware/validateAdmin.js similarity index 100% rename from middleware/validateAdminTokenHandler.js rename to middleware/validateAdmin.js diff --git a/middleware/validateUser.js b/middleware/validateUser.js new file mode 100644 index 0000000..79c575e --- /dev/null +++ b/middleware/validateUser.js @@ -0,0 +1,28 @@ +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 };