Skip to content

Instantly share code, notes, and snippets.

@AwesomeZaidi
Created May 13, 2019 04:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AwesomeZaidi/c44607ed546bf70eb43ba15a26d5b2fe to your computer and use it in GitHub Desktop.
Save AwesomeZaidi/c44607ed546bf70eb43ba15a26d5b2fe to your computer and use it in GitHub Desktop.
const User = require('../models/user');
const jwt = require('jsonwebtoken');
function checkAuth (req, res, next) {
if (req.cookies && req.cookies.nToken) {
const uid = jwt.decode(req.cookies.nToken, process.env.SECRET)._id;
User.findById(uid).then(user => {
req.user = user;
return next();
});
} else {
return res.status(401).send("User not logged in");
};
};
async function checkLeader (req, res, next) {
checkAuth(req, res).then((user) => {
return next();
}).catch(err => {
return res.status(500).send("Something went wrong, user not found, please relogin.");
});
};
async function checkAdmin (req, res, next) {
const user = await checkAuth(req, res);
if (user.type === 'admin') {
return next();
} else {
return res.status(500).send("Something went wrong, user not found, please relogin.");
};
};
module.exports = {
checkAuth: checkAuth,
checkAdmin: checkAdmin,
checkLeader: checkLeader
};
const User = require('../models/user');
const jwt = require('jsonwebtoken');
function checkAuth (req, res, next) {
if (req.cookies && req.cookies.nToken) {
const uid = jwt.decode(req.cookies.nToken, process.env.SECRET)._id;
User.findById(uid).then(user => {
req.user = user;
return next();
});
} else {
return res.status(401).send("User not logged in");
};
};
function checkLeader (req, res, next) {
if (req.cookies && req.cookies.nToken) {
const uid = jwt.decode(req.cookies.nToken, process.env.SECRET)._id;
User.findById(uid).then(user => {
req.user = user;
if (req.user.type === 'leader') {
console.log('leader authenticated.');
return next();
};
return res.status(401).send("Leader user not found");
}).catch((err) => {
return res.status(500).send("Something went wrong, user not found.");
});
} else {
return res.status(401).send("User not logged in");
};
};
function checkAdmin (req, res, next) {
if (req.cookies && req.cookies.nToken) {
const uid = jwt.decode(req.cookies.nToken, process.env.SECRET)._id;
User.findById(uid).then(user => {
req.user = user;
if (req.user.type === 'admin') {
return next();
};
return res.status(401).send("Admin user not found");
}).catch((err) => {
return res.status(500).send("Something went wrong, user not found.");
});
} else {
return res.status(401).send("User not logged in");
};
};
module.exports = {
checkAuth: checkAuth,
checkAdmin: checkAdmin,
checkLeader: checkLeader
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment