UNPKG

@speakr/speakr-module-services

Version:
36 lines (34 loc) 1.14 kB
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' }); } }) } }); }) }