后台:修改白名单
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
import {Application, RouteRecord, FrontendOrBackendSession, HandlerCallback, pinus} from "pinus";
|
import {Application, RouteRecord, FrontendOrBackendSession, HandlerCallback, pinus, FrontendSession} from "pinus";
|
||||||
// import { checkEvent } from '../../../services/eventSercive';
|
// import { checkEvent } from '../../../services/eventSercive';
|
||||||
import { refresh } from '../../../services/refreshService';
|
import { refresh } from '../../../services/refreshService';
|
||||||
import { checkPrivateChat, checkGuildChat, checkOtherChat, checkRoleName, checkGuildName } from "../../../services/sdkService";
|
import { checkPrivateChat, checkGuildChat, checkOtherChat, checkRoleName, checkGuildName } from "../../../services/sdkService";
|
||||||
import { resResult, checkWhiteListWithUid, genCode } from "../../../pubUtils/util";
|
import { resResult, checkWhiteList, genCode } from "../../../pubUtils/util";
|
||||||
import { BLOCK_TYPE, CHANNEL_PREFIX, MSG_TYPE, STATUS } from "../../../consts";
|
import { BLOCK_TYPE, CHANNEL_PREFIX, MSG_TYPE, STATUS } from "../../../consts";
|
||||||
import { UserModel } from "../../../db/User";
|
import { UserModel } from "../../../db/User";
|
||||||
import { SERVER_DEBUG_MODE } from "../../../pubUtils/dicParam";
|
import { SERVER_DEBUG_MODE } from "../../../pubUtils/dicParam";
|
||||||
@@ -21,6 +21,8 @@ Filter.prototype.before = async function (routeRecord: RouteRecord, msg: any, se
|
|||||||
const sid: string = session.get('sid');
|
const sid: string = session.get('sid');
|
||||||
const roleId: string = session.get('roleId');
|
const roleId: string = session.get('roleId');
|
||||||
const uid: number = session.get('userid');
|
const uid: number = session.get('userid');
|
||||||
|
const ip: string = session.get('ip');
|
||||||
|
console.log('*********** global before ip', ip)
|
||||||
let guildCode = session.get('guildCode');
|
let guildCode = session.get('guildCode');
|
||||||
let blockType = session.get('blockType');
|
let blockType = session.get('blockType');
|
||||||
if(blockType == BLOCK_TYPE.BLOCK) return next(new Error(), resResult(STATUS.BLOCKED));
|
if(blockType == BLOCK_TYPE.BLOCK) return next(new Error(), resResult(STATUS.BLOCKED));
|
||||||
@@ -36,15 +38,14 @@ Filter.prototype.before = async function (routeRecord: RouteRecord, msg: any, se
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
session.push('teamCode', () => {});
|
session.push('teamCode', () => {});
|
||||||
|
|
||||||
if(sid) {
|
if(sid) {
|
||||||
const mainten = getServerMainten(serverId);
|
const mainten = getServerMainten(serverId);
|
||||||
console.log('***** maintenServers', mainten)
|
|
||||||
if(mainten) { // 该服务器维护
|
if(mainten) { // 该服务器维护
|
||||||
if(mainten.startTime > nowSeconds() || mainten.endTime < nowSeconds()) return next(null)
|
if(mainten.startTime > nowSeconds() || mainten.endTime < nowSeconds()) return next(null)
|
||||||
let isWhiteList = await checkWhiteListWithUid(uid);
|
|
||||||
|
let isWhiteList = await checkWhiteList(this.app.get('env'), ip, uid, serverId);
|
||||||
if(isWhiteList) return next(null);
|
if(isWhiteList) return next(null);
|
||||||
|
|
||||||
pinus.app.get('channelService').pushMessageByUids('onServerMaintenance', resResult(STATUS.SERVER_MAINTENANCE), [{ uid: roleId, sid }]);
|
pinus.app.get('channelService').pushMessageByUids('onServerMaintenance', resResult(STATUS.SERVER_MAINTENANCE), [{ uid: roleId, sid }]);
|
||||||
|
|||||||
@@ -120,6 +120,8 @@ export class EntryHandler {
|
|||||||
|
|
||||||
async addSession(role: RoleType, session: FrontendSession) {
|
async addSession(role: RoleType, session: FrontendSession) {
|
||||||
const self = this;
|
const self = this;
|
||||||
|
let ip = session.remoteAddress.ip.replace('::ffff:', '');
|
||||||
|
|
||||||
await session.abind(role.roleId);
|
await session.abind(role.roleId);
|
||||||
session.set('userid', role.userInfo.uid);
|
session.set('userid', role.userInfo.uid);
|
||||||
session.set('uid', role.roleId);
|
session.set('uid', role.roleId);
|
||||||
@@ -132,6 +134,7 @@ export class EntryHandler {
|
|||||||
session.set('sid', self.app.get('serverId'));
|
session.set('sid', self.app.get('serverId'));
|
||||||
session.set('serverId', role.serverId);
|
session.set('serverId', role.serverId);
|
||||||
session.set('guildCode', role.guildCode);
|
session.set('guildCode', role.guildCode);
|
||||||
|
session.set('ip', ip);
|
||||||
session.push('userid', () => { });
|
session.push('userid', () => { });
|
||||||
session.push('sid', () => { });
|
session.push('sid', () => { });
|
||||||
session.push('roleId', () => { });
|
session.push('roleId', () => { });
|
||||||
@@ -141,6 +144,7 @@ export class EntryHandler {
|
|||||||
session.push('updatedMailAt', () => { });
|
session.push('updatedMailAt', () => { });
|
||||||
session.push('guildCode', () => { });
|
session.push('guildCode', () => { });
|
||||||
session.push('blockType', () => { });
|
session.push('blockType', () => { });
|
||||||
|
session.push('ip', () => { });
|
||||||
// console.log(role.guildCode)
|
// console.log(role.guildCode)
|
||||||
// session.push('rid', function (err) {
|
// session.push('rid', function (err) {
|
||||||
// if (err) {
|
// if (err) {
|
||||||
|
|||||||
+16
-8
@@ -1,22 +1,30 @@
|
|||||||
import BaseModel from './BaseModel';
|
import BaseModel from './BaseModel';
|
||||||
import { prop, DocumentType, getModelForClass } from '@typegoose/typegoose';
|
import { prop, DocumentType, getModelForClass } from '@typegoose/typegoose';
|
||||||
import { WHITE_LIST_TYPE } from '../consts';
|
|
||||||
|
|
||||||
export default class WhiteList extends BaseModel {
|
export default class WhiteList extends BaseModel {
|
||||||
|
|
||||||
@prop({ required: true, enum: WHITE_LIST_TYPE })
|
@prop({ required: true })
|
||||||
type: WHITE_LIST_TYPE; // 区号
|
regionId: number; // 大区区号
|
||||||
|
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
str: string; // ip或手机号
|
env: string; // 环境变量
|
||||||
|
|
||||||
public static async checkIp(ip: string) {
|
@prop({ required: true })
|
||||||
const rec: WhiteListModelType = await WhiteListModel.findOne({ type: WHITE_LIST_TYPE.IP, str: ip }).lean();
|
ip: string; // ip
|
||||||
|
|
||||||
|
@prop({ required: true })
|
||||||
|
serverId: number; // 小区id
|
||||||
|
|
||||||
|
@prop({ required: true })
|
||||||
|
uid: number; // 玩家uid
|
||||||
|
|
||||||
|
public static async checkIp(env: string, ip: string) {
|
||||||
|
const rec = await WhiteListModel.exists({ env, ip });
|
||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async checkTel(tel: string) {
|
public static async checkUid(env: string, serverId: number, uid: number) {
|
||||||
const rec: WhiteListModelType = await WhiteListModel.findOne({ type: WHITE_LIST_TYPE.TEL, str: tel }).lean();
|
const rec = await WhiteListModel.exists({ env, serverId, uid });
|
||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { isArray } from 'underscore';
|
|||||||
import GMMail from "../../db/GMMail";
|
import GMMail from "../../db/GMMail";
|
||||||
import ServerStategy from "../../db/ServerStategy";
|
import ServerStategy from "../../db/ServerStategy";
|
||||||
import { RegionType } from "../../db/Region";
|
import { RegionType } from "../../db/Region";
|
||||||
import { nowSeconds } from "../../pubUtils/timeUtil";
|
|
||||||
|
|
||||||
export class UpdateMailParams {
|
export class UpdateMailParams {
|
||||||
hasGoods: boolean = false; // 是否有道具
|
hasGoods: boolean = false; // 是否有道具
|
||||||
|
|||||||
+5
-13
@@ -11,7 +11,6 @@ import { findIndex } from 'underscore';
|
|||||||
import { getTimeFunM } from './timeUtil';
|
import { getTimeFunM } from './timeUtil';
|
||||||
import { Floor } from '../domain/activityField/gachaField';
|
import { Floor } from '../domain/activityField/gachaField';
|
||||||
import { WhiteListModel } from '../db/WhiteList';
|
import { WhiteListModel } from '../db/WhiteList';
|
||||||
import { UserModel } from '../db/User';
|
|
||||||
const randomName = require("chinese-random-name");
|
const randomName = require("chinese-random-name");
|
||||||
const moment = require('moment');
|
const moment = require('moment');
|
||||||
const crypto = require('crypto');
|
const crypto = require('crypto');
|
||||||
@@ -659,20 +658,13 @@ export function getFloorStatus(gachaId: number, floor: Floor[]) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function checkWhiteListWithUid(uid: number) {
|
export async function checkWhiteList(env: string, ip: string, uid: number, serverId: number) {
|
||||||
let user = await UserModel.findUserByUid(uid);
|
if(ip) {
|
||||||
if(!user) return false;
|
let result = await WhiteListModel.checkIp(env, ip);
|
||||||
let { tel, ip } = user;
|
|
||||||
return await checkWhiteList(tel, ip);
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function checkWhiteList(tel: string, ip: string) {
|
|
||||||
if(tel) {
|
|
||||||
let result = await WhiteListModel.checkTel(tel);
|
|
||||||
if(!!result) return true;
|
if(!!result) return true;
|
||||||
}
|
}
|
||||||
if(ip) {
|
if(uid && serverId) {
|
||||||
let result = await WhiteListModel.checkIp(ip);
|
let result = await WhiteListModel.checkUid(env, serverId, uid);
|
||||||
if(!!result) return true;
|
if(!!result) return true;
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ module.exports = () => {
|
|||||||
if (serverId) {
|
if (serverId) {
|
||||||
let server = await ServerlistModel.findByServerId(serverId);
|
let server = await ServerlistModel.findByServerId(serverId);
|
||||||
if (server && server.maintenance && server.maintenance.isOpen && server.maintenance.startTime < nowSeconds() && server.maintenance.endTime > nowSeconds()) {
|
if (server && server.maintenance && server.maintenance.isOpen && server.maintenance.startTime < nowSeconds() && server.maintenance.endTime > nowSeconds()) {
|
||||||
let isWhiteList = await checkWhiteList(ctx.tel, ctx.request.ip);
|
let isWhiteList = await checkWhiteList(ctx.app.config.realEnv, ctx.clientIp, ctx.uid, serverId);
|
||||||
if (isWhiteList) {
|
if (isWhiteList) {
|
||||||
await next();
|
await next();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import { Context } from 'egg';
|
||||||
|
|
||||||
|
module.exports = () => {
|
||||||
|
return async function parmsDecode(ctx: Context, next) {
|
||||||
|
|
||||||
|
let xRealIp = typeof ctx.header['x-real-ip'] == 'string'? ctx.header['x-real-ip']: ctx.header['x-real-ip'][0];
|
||||||
|
ctx.clientIp = xRealIp||ctx.request.ip;
|
||||||
|
console.log('*****', ctx.clientIp);
|
||||||
|
await next();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
@@ -3,6 +3,7 @@ import { UserModel } from '@db/User';
|
|||||||
|
|
||||||
module.exports = () => {
|
module.exports = () => {
|
||||||
return async function tokenParser(ctx, next) {
|
return async function tokenParser(ctx, next) {
|
||||||
|
|
||||||
if (!ctx.request.body || !ctx.request.body.token) {
|
if (!ctx.request.body || !ctx.request.body.token) {
|
||||||
console.error('token not found');
|
console.error('token not found');
|
||||||
ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { Application } from 'egg';
|
|||||||
|
|
||||||
export default (app: Application) => {
|
export default (app: Application) => {
|
||||||
const { controller, router } = app;
|
const { controller, router } = app;
|
||||||
|
|
||||||
const tokenParser = app.middleware.tokenParser();
|
const tokenParser = app.middleware.tokenParser();
|
||||||
const checkMainten = app.middleware.checkMainten();
|
const checkMainten = app.middleware.checkMainten();
|
||||||
router.get('/dev', controller.home.dev);
|
router.get('/dev', controller.home.dev);
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ export default class Auth extends Service {
|
|||||||
|
|
||||||
public async deviceLogin(isGuest: boolean, token: string, deviceId: string, platform: string, pkgName: string, serverType: string, getuiCID: string) {
|
public async deviceLogin(isGuest: boolean, token: string, deviceId: string, platform: string, pkgName: string, serverType: string, getuiCID: string) {
|
||||||
const ctx = this.ctx;
|
const ctx = this.ctx;
|
||||||
const ip = ctx.request.ip;
|
|
||||||
|
|
||||||
let user = await UserModel.findUserByToken(token);
|
let user = await UserModel.findUserByToken(token);
|
||||||
|
|
||||||
@@ -46,7 +45,7 @@ export default class Auth extends Service {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
user = await UserModel.createUser(isGuest, tel, token, platform, pkgName, serverType, deviceId, 0, ip);
|
user = await UserModel.createUser(isGuest, tel, token, platform, pkgName, serverType, deviceId, 0, ctx.clientIp);
|
||||||
if (getuiCID) {//更新个推cid
|
if (getuiCID) {//更新个推cid
|
||||||
await UserModel.updateGetuiCID(tel, getuiCID);
|
await UserModel.updateGetuiCID(tel, getuiCID);
|
||||||
}
|
}
|
||||||
@@ -66,7 +65,7 @@ export default class Auth extends Service {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const token = ctx.service.utils.generateStr(256);
|
const token = ctx.service.utils.generateStr(256);
|
||||||
user = await UserModel.updateToken(user.tel, token, deviceId, ip);
|
user = await UserModel.updateToken(user.tel, token, deviceId, ctx.clientIp);
|
||||||
if (getuiCID) {//更新个推cid
|
if (getuiCID) {//更新个推cid
|
||||||
await UserModel.updateGetuiCID(user.tel, getuiCID);
|
await UserModel.updateGetuiCID(user.tel, getuiCID);
|
||||||
}
|
}
|
||||||
@@ -188,7 +187,6 @@ export default class Auth extends Service {
|
|||||||
*/
|
*/
|
||||||
public async smsLogin(tel: string, deviceId: string, code: string, platform: string, pkgName: string, serverType: string, getuiCID: string) {
|
public async smsLogin(tel: string, deviceId: string, code: string, platform: string, pkgName: string, serverType: string, getuiCID: string) {
|
||||||
const ctx = this.ctx;
|
const ctx = this.ctx;
|
||||||
const ip = ctx.request.ip;
|
|
||||||
// 参数检查
|
// 参数检查
|
||||||
const telVerify = this.checkTelNo(tel);
|
const telVerify = this.checkTelNo(tel);
|
||||||
if (telVerify.status !== 0) {
|
if (telVerify.status !== 0) {
|
||||||
@@ -218,7 +216,7 @@ export default class Auth extends Service {
|
|||||||
|
|
||||||
// 用户注册登录
|
// 用户注册登录
|
||||||
const token = ctx.service.utils.generateStr(256);
|
const token = ctx.service.utils.generateStr(256);
|
||||||
const user = await UserModel.createOrUpdate(false, tel, token, platform, pkgName, serverType, deviceId, ip);
|
const user = await UserModel.createOrUpdate(false, tel, token, platform, pkgName, serverType, deviceId, ctx.clientIp);
|
||||||
if (getuiCID) {//更新个推cid
|
if (getuiCID) {//更新个推cid
|
||||||
await UserModel.updateGetuiCID(tel, getuiCID);
|
await UserModel.updateGetuiCID(tel, getuiCID);
|
||||||
}
|
}
|
||||||
@@ -403,7 +401,6 @@ export default class Auth extends Service {
|
|||||||
const { channelType, pst, clientId, deviceId, platform, platformAppid, childGameId, pkgName, serverType, getuiCID } = params;
|
const { channelType, pst, clientId, deviceId, platform, platformAppid, childGameId, pkgName, serverType, getuiCID } = params;
|
||||||
|
|
||||||
const ctx = this.ctx;
|
const ctx = this.ctx;
|
||||||
const ip = ctx.request.ip;
|
|
||||||
|
|
||||||
let requestResult = await loginValidata(channelType, { clientId, pst, platformAppid, childGameId });
|
let requestResult = await loginValidata(channelType, { clientId, pst, platformAppid, childGameId });
|
||||||
if(!requestResult) return this.ctx.service.utils.resResult(STATUS.CHANNEL_ERR);
|
if(!requestResult) return this.ctx.service.utils.resResult(STATUS.CHANNEL_ERR);
|
||||||
@@ -416,7 +413,7 @@ export default class Auth extends Service {
|
|||||||
const token = ctx.service.utils.generateStr(256);
|
const token = ctx.service.utils.generateStr(256);
|
||||||
let user = await UserModel.createOrUpdateChannelUser(channelId, channelType, {
|
let user = await UserModel.createOrUpdateChannelUser(channelId, channelType, {
|
||||||
...requestResult.data, childGameId, platformAppid
|
...requestResult.data, childGameId, platformAppid
|
||||||
}, token, platform, pkgName, serverType, deviceId, ip);
|
}, token, platform, pkgName, serverType, deviceId, ctx.clientIp);
|
||||||
if (getuiCID) {//更新个推cid
|
if (getuiCID) {//更新个推cid
|
||||||
await UserModel.updateGetuiCIDByChannel(channelId, getuiCID);
|
await UserModel.updateGetuiCIDByChannel(channelId, getuiCID);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,14 +29,12 @@ export default class Sdk extends Service {
|
|||||||
public async pay37Callback(params: PayCallback37Data) {
|
public async pay37Callback(params: PayCallback37Data) {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { app } = ctx;
|
const { app } = ctx;
|
||||||
let ip = typeof ctx.header['x-real-ip'] == 'string'? ctx.header['x-real-ip']: ctx.header['x-real-ip'][0];
|
|
||||||
console.log('*****pay37Callback', ip)
|
|
||||||
|
|
||||||
let checkResult = this.check37Sign(params);
|
let checkResult = this.check37Sign(params);
|
||||||
if(!checkResult) return ctx.service.utils.resResult(PAY_37_CALLBACK_CODE.MD5_ERR, '');
|
if(!checkResult) return ctx.service.utils.resResult(PAY_37_CALLBACK_CODE.MD5_ERR, '');
|
||||||
|
|
||||||
console.log('*****pay37Callback check sign ok')
|
console.log('*****pay37Callback check sign ok')
|
||||||
if(gameData.whiteip.indexOf(ip) == -1) {
|
if(gameData.whiteip.indexOf(ctx.clientIp) == -1) {
|
||||||
return ctx.service.utils.resResult(PAY_37_CALLBACK_CODE.IP_LIMIT, '');
|
return ctx.service.utils.resResult(PAY_37_CALLBACK_CODE.IP_LIMIT, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,9 +93,6 @@ export default class Sdk extends Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public treatRoleOrGuildNameValidate(params: RoleNameCallBackParam|GuildNameCallBackParam|GetGuildInfoByUserParam) {
|
public treatRoleOrGuildNameValidate(params: RoleNameCallBackParam|GuildNameCallBackParam|GetGuildInfoByUserParam) {
|
||||||
const { ctx } = this;
|
|
||||||
let ip = ctx.header['x-real-ip'];
|
|
||||||
console.log('*****', ip)
|
|
||||||
|
|
||||||
if(!params.checkParams()) return SDK_37_TREAT_CODE.WRONG_PARAMS;
|
if(!params.checkParams()) return SDK_37_TREAT_CODE.WRONG_PARAMS;
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ export default (appInfo: EggAppInfo) => {
|
|||||||
allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH',
|
allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH',
|
||||||
};
|
};
|
||||||
// add your egg config in here
|
// add your egg config in here
|
||||||
config.middleware = [ 'parmsDecode' ];
|
config.middleware = [ 'parmsDecode', 'getIp' ];
|
||||||
|
|
||||||
config.mongoose = {
|
config.mongoose = {
|
||||||
url: 'mongodb://dbop:zyzdbopbantu@dds-8vbdb47c6fb58a541.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdb47c6fb58a542.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?replicaSet=mgset-500808098', // 内网
|
url: 'mongodb://dbop:zyzdbopbantu@dds-8vbdb47c6fb58a541.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdb47c6fb58a542.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?replicaSet=mgset-500808098', // 内网
|
||||||
|
|||||||
@@ -26,7 +26,8 @@
|
|||||||
"distribute": "cross-env EGG_SERVER_ENV=distribute npm run dev",
|
"distribute": "cross-env EGG_SERVER_ENV=distribute npm run dev",
|
||||||
"lylocal": "cross-env EGG_SERVER_ENV=lylocal npm run dev",
|
"lylocal": "cross-env EGG_SERVER_ENV=lylocal npm run dev",
|
||||||
"alpha": "cross-env EGG_SERVER_ENV=alpha npm run dev",
|
"alpha": "cross-env EGG_SERVER_ENV=alpha npm run dev",
|
||||||
"stable": "cross-env EGG_SERVER_ENV=stable npm run dev"
|
"stable": "cross-env EGG_SERVER_ENV=stable npm run dev",
|
||||||
|
"deve": "cross-env EGG_SERVER_ENV=dev npm run dev"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/underscore": "^1.11.3",
|
"@types/underscore": "^1.11.3",
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
import 'egg';
|
import 'egg';
|
||||||
import ExportCheckMainten from '../../../app/middleware/checkMainten';
|
import ExportCheckMainten from '../../../app/middleware/checkMainten';
|
||||||
|
import ExportGetIp from '../../../app/middleware/getIp';
|
||||||
import ExportGmTokenParser from '../../../app/middleware/gmTokenParser';
|
import ExportGmTokenParser from '../../../app/middleware/gmTokenParser';
|
||||||
import ExportParmsDecode from '../../../app/middleware/parmsDecode';
|
import ExportParmsDecode from '../../../app/middleware/parmsDecode';
|
||||||
import ExportTokenParser from '../../../app/middleware/tokenParser';
|
import ExportTokenParser from '../../../app/middleware/tokenParser';
|
||||||
@@ -10,6 +11,7 @@ import ExportTokenParser from '../../../app/middleware/tokenParser';
|
|||||||
declare module 'egg' {
|
declare module 'egg' {
|
||||||
interface IMiddleware {
|
interface IMiddleware {
|
||||||
checkMainten: typeof ExportCheckMainten;
|
checkMainten: typeof ExportCheckMainten;
|
||||||
|
getIp: typeof ExportGetIp;
|
||||||
gmTokenParser: typeof ExportGmTokenParser;
|
gmTokenParser: typeof ExportGmTokenParser;
|
||||||
parmsDecode: typeof ExportParmsDecode;
|
parmsDecode: typeof ExportParmsDecode;
|
||||||
tokenParser: typeof ExportTokenParser;
|
tokenParser: typeof ExportTokenParser;
|
||||||
|
|||||||
Reference in New Issue
Block a user