/var/www/greso.tech/server/nsm/middleware
Edit: /var/www/greso.tech/server/nsm/middleware/auth.js (607B)
const jwt = require('jsonwebtoken')
const config = require('../config/app.json')
const { Unauthorized, Forbidden } = require('../responseModels/errors/index')
module.exports = async (req, res, next) => {
try {
if (!req.header('Authorization')) {
throw new Forbidden({ code: 403 })
}
let token = req.header('Authorization').replace('Bearer ', '')
if (!token) {
throw new Forbidden({ code: 403 })
}
jwt.verify(token, config.jwt.secret, (err, decoded) => {
if (err) {
throw new Unauthorized({ code: 401 })
}
req.user = decoded
next()
})
} catch (err) {
next(err)
}
}