const jwt = require('jsonwebtoken'); const Admin = require('./models/admin/Admin') const User = require('./models/user/User') const config = { // secret for generating jwt token secretKey: '2664debdbef6fdd2ae52ba2c9cd4d1d15f3cdca31a641aacad1a5c43cda91b55a145b3f4c573f69aeba3c942bf55417593ff74f7d192a5664358ee753ea09e8e' } module.exports = config // check if admin logged in module.exports.isAdmin = function (req, res, next) { const token = req.headers.authorization if (token) { // check if token is not destroyed Admin.findOne({token: token}, (err, user) => { if (err) throw err if (user) { // verifies secret and checks if the token is expired jwt.verify(user.token.replace(/^Bearer\s/, ''), config.secretKey, (err, decoded) => { if (err) { return res.status(401).json({message: 'unauthorized'}) } else { return next() } }) } else return res.status(401).json({message: 'unauthorized'}) }) } else { return res.status(401).json({message: 'unauthorized'}) } } // check if user logged in module.exports.isUser = function (req, res, next) { const token = req.headers.authorization if (token) { // check if token is not destroyed User.findOne({token: token}, (err, user) => { if (err) throw err if (user) { // verifies secret and checks if the token is expired jwt.verify(user.token.replace(/^Bearer\s/, ''), config.secretKey, (err, decoded) => { if (err) { return res.status(401).json({message: 'unauthorized'}) } else { return next() } }) } else return res.status(401).json({message: 'unauthorized'}) }) } else { return res.status(401).json({message: 'unauthorized'}) } }