Created
May 13, 2019 04:54
-
-
Save AwesomeZaidi/c44607ed546bf70eb43ba15a26d5b2fe to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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