Files
arakrail/api/config.js
T
2020-11-23 19:39:26 +03:30

57 lines
1.9 KiB
JavaScript

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'})
}
}