| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | 
							- 'use strict';
 
- /**
 
-  *
 
-  * @author EllisRan
 
-  * @date
 
-  * @version
 
-  */
 
- const crypto = require('crypto');
 
- const maintainConst = require('../const/maintain');
 
- module.exports = options => {
 
-     return function* api2otherCheck(next) {
 
-         try {
 
-             // 获取系统维护信息
 
-             const maintainData = yield this.service.maintain.getDataById(1);
 
-             if (maintainData.status === maintainConst.status.ongoing) {
 
-                 throw '系统维护中~';
 
-             }
 
-             const code = this.query.code || this.request.body.code;
 
-             const sign = this.query.sign || this.request.body.sign;
 
-             const time = this.query.time || this.request.body.time;
 
-             if (!code || !sign || !time) {
 
-                 throw '参数有误';
 
-             }
 
-             if ((parseFloat(time) + 86400 * 1000) < new Date().getTime()) {
 
-                 throw '时间参数已过期';
 
-             }
 
-             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) {
 
-             console.log(err);
 
-             // 重定向值标段管理
 
-             // 判断是登录请求还是接口请求
 
-             if (this.helper.isAjax(this.request)) {
 
-                 this.body = {
 
-                     err: 1,
 
-                     msg: err,
 
-                     data: '',
 
-                 };
 
-                 return;
 
-             }
 
-             this.session.loginError = err;
 
-             yield next;
 
-         }
 
-     };
 
- };
 
 
  |