@xmobitea/gn-server
Version:
GearN Server by XmobiTea (Pro)
47 lines (46 loc) • 2.32 kB
TypeScript
import express from "express";
import { AuthInfo } from "./../../GN-common/entity/AuthInfo";
import * as mongoDB from "mongodb";
import { Socket } from "socket.io";
import { SecretInfo } from "./../../GN-common/entity/SecretInfo";
import jwt from "jsonwebtoken";
import { TokenPayload } from "./../../GN-common/entity/TokenPayload";
export declare class ApiMiddleware {
private static readonly FIVE_MINUTE_TS;
private static readonly TS_REMOVE_AUTH_INFO_DIC;
private static readonly DEFAULT_GAME_ID;
private authInfoDict;
private authInfoCollection;
private secretInfoDict;
private secretInfoCollection;
private playerGameCollection;
private expiredToken;
private privateKeyToken;
private headerIP;
private dauLast30Min;
private maxCCU;
setSecretInfoCollection(secretInfoCollection: mongoDB.Collection<mongoDB.Document>): void;
setAuthInfoCollection(authInfoCollection: mongoDB.Collection<mongoDB.Document>): void;
setPlayerGameCollection(playerGameCollection: mongoDB.Collection<mongoDB.Document>): void;
setExpiredToken(expiredToken: number): void;
setPrivateKeyToken(privateKeyToken: string): void;
setHeaderIP(headerIP: string): void;
getHeaderIP(): string;
run(): void;
private getDAULast30Min;
private checkAndRemoveDict;
generateAuthInfo(payload: TokenPayload): AuthInfo;
verifyAuthToken(authToken: string): jwt.JwtPayload;
getSecretInfoBySecretKeyInDatabase(secretKey: string): Promise<SecretInfo>;
getAuthInfoByGNTokenInDatabase(gnToken: string): Promise<AuthInfo>;
updateSecretInfo(secretInfo: SecretInfo): Promise<void>;
updateAuthInfo(authInfo: AuthInfo): Promise<void>;
authenticateTokenViaJson(req: express.Request, res: express.Response, next: Function): Promise<any>;
authenticateUploadToken(req: express.Request, res: express.Response, next: Function): Promise<any>;
authenticateTokenViaMsgPack(req: express.Request, res: express.Response, next: Function): Promise<any>;
getIP(req: express.Request, res: express.Response, next: Function): Promise<any>;
getReturnCodeAuthenticate(req: express.Request): Promise<number>;
socketAuthenticateToken(socket: Socket, next: (returnCode: number) => void): Promise<void>;
createIP(ip: string): string;
constructor();
}