const Client = require("../models/Client"); const User = require("../models/User"); const Auth = {}; Auth.check = async (req, res, next) => { try { let token; if (req.headers.cookie) { token = req.headers.cookie.replace("token=", ""); } else if (req.headers.token) { token = req.headers.token; } if (!token) { throwError("Please Login...!"); } const decode = await JWT.decodeToken(token); const user = await User.findOne({_id: decode._id}); if (user) { req.user = user; if (user.role !== "customer") { req.client = await Client.findOne({staff: {$in: [user._id]}}); } else { req.client = undefined; } if (AppDir === "core") { if (user.role !== "customer") { throwError("Please Login as a customer"); } } else { if (user.role === "customer") { throwError("Please Login as a client"); } } } else { throwError("User Not Found"); } next(); } catch (error) { next(error); } }; module.exports = Auth;
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter