const config = require("../config") const rsa = require("../utils/rsa") const jwt = require('jsonwebtoken'); /** * 拦截器,验证 token,data * @type {{Validator(*, *, *): void}} */ module.exports = { Validator(req, res, next) { if(req.headers.hasOwnProperty("data")) { try { req.headers.data = rsa.PrivateKeyDecryption(req.headers.data) if(req.url == config.filter.login || req.url == config.filter.add) { next() } else { if(req.headers.hasOwnProperty("token")) { jwt.verify(req.headers.token,config.jwt,function(err,decode){ if(err){ res.json({ status: 501, message: '身份凭证失效或不存在,请登录' }) }else{ next(); } }); } else { // 无token res.json({ status: 500, message: '缺少token参数,请检查' }) } } } catch (e) { res.json({ status: 500, message: '抱歉,公钥加密有误,请检查公钥' }) } } else { res.json({ status: 500, message: '请求头缺少data参数' }) } } }