'use strict'; /** * * @author LanJianRong * @date 2021-12-27 * @version */ const maintainConst = require('../const/maintain'); const sign = require('../const/sign'); const jwt = require('jsonwebtoken'); module.exports = options => { return function* api3managementCheck(next) { try { // 获取系统维护信息 const maintainData = yield this.service.maintain.getDataById(1); if (maintainData.status === maintainConst.status.ongoing) { throw '系统维护中~'; } const token = this.query.auth; if (!token) { throw '参数有误'; } try { const decoded = jwt.verify(token, sign.managementApiSecretKey); if (!decoded.data) throw '参数有误'; this.data = decoded.data; } catch (error) { throw error; } // const data = yield this.service.project.getProjectByCode(code.toString().trim()); // if (data === null) { // throw '不存在项目数据'; // } // if (data.custom === 0) { // throw '无法通过接口登录本系统'; // } // if (data.custom === 1 && data.can_api === 0) { // throw '接口已关闭,无法使用'; // } // const encryptSign = crypto.createHash('md5').update(data.code + data.secret + time.toString()).digest('hex').toString(); // if (encryptSign !== sign) { // throw '参数验证失败'; // } // this.projectData = data; yield next; } catch (err) { this.body = { code: -1, msg: err.toString(), data: null, }; return; } }; };