@speakr/speakr-module-services
Version:
SPEAKR Shared Service Module
36 lines (34 loc) • 1.14 kB
JavaScript
const njwt = require('njwt');
const token = require('../../features/token/');
const db = require(`../../db`);
module.exports = {
validate
};
function validate(req, res, next){
let options = {
req: req
};
token.read.byToken(options)
.then((options) => {
let token = options.tokens.jwt;
let key = options.tokens.key;
njwt.verify(token,key,function(err,verifiedJwt){
if(err){
// Token has expired, has been tampered with, etc
res.status(500).send({ error: 'Token Failed!' }, err);
} else {
let where = {id_hash: verifiedJwt.body.meta.id_hash};
return db.users.findOne({where: where})
.then((users)=>{
users = users.dataValues ? users.dataValues : users;
if(verifiedJwt.body.meta.agency === users.agency_id && verifiedJwt.body.meta.network === users.network_id ){
options.tokens.users = users;
next();
} else {
res.status(500).send({ error: 'Rejected due to incorrect network and agency' });
}
})
}
});
})
}