@bee.js/node
Version:
A JavaScript framework for making Node.js API´s
28 lines (19 loc) • 999 B
JavaScript
const log = require('../beeHive/log')
const beeJWT = require('../JWT/beeJWT')
module.exports = async function(req, res, next, ignoreMiddlewares = false) {
log(`Route: ${req.method} ${req.originalUrl}`)
req.ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress
if(!ignoreMiddlewares) {
let token = (req.headers.authorization || '').split(' ').slice(-1)[0]
let validSession = global.configs.middlewares.session //TODO
let validPermission = global.configs.middlewares.permission //TODO
if(global.configs.jwt) {
log(`Token verify: ${token}`)
token = beeJWT().verify(token)
if(!token)
return res.status(validSession.errorCode || 401).send({data: null, error: {message: validSession.error || 'NOT_AUTHENTICATED'}, action: validSession.failAction || 'NOT_AUTHENTICATED'})
req.token = JSON.parse(token)
}
}
next()
}