48 lines
1.6 KiB
JavaScript
48 lines
1.6 KiB
JavaScript
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参数'
|
||
})
|
||
}
|
||
}
|
||
}
|