17 lines
770 B
TypeScript
17 lines
770 B
TypeScript
import { Request, Response, NextFunction } from "express";
|
|
import ServerStdResponse from "../../ServerStdResponse";
|
|
import Logger from "../Logger";
|
|
import captchaSession from "../Service/captchaSession";
|
|
const logger = new Logger("CheckCaptcha");
|
|
const CheckCaptchaPassed = async (req: Request, res: Response, next: NextFunction) => {
|
|
let session = req.query.session || req.body.session || '';
|
|
if (session) {
|
|
if (await captchaSession.isPassed(session))
|
|
return next();
|
|
}
|
|
let ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || req.ip;
|
|
logger.info(`API[${req.method}][${req.url.split('?')[0]}] 请求人机验证未通过[${ip}]`);
|
|
res.json(ServerStdResponse.AUTH_ERROR);
|
|
}
|
|
|
|
export default CheckCaptchaPassed; |