优化captchaSession

This commit is contained in:
2024-09-06 12:00:07 +08:00
parent bfa5042f07
commit 9815f0efdf

View File

@@ -1,18 +1,28 @@
/**
* @file captchaSession.ts
* @version 1.0.0
* @description 旋转图像验证服务
*/
import Logger from '../Logger'; import Logger from '../Logger';
import RedisConnection from '../RedisConnection'; import RedisConnection from '../RedisConnection';
type CaptchaSessionDataJSON = {
rotateDeg: number,
tryCount: number,
isPassed: boolean
}
class _captchaSession { class _captchaSession {
private logger = new Logger('Service][captchaSession'); private readonly logger = new Logger('Service][captchaSession');
private AllowMaxTryCount: number = 5; private readonly AllowMaxTryCount: number = 5;
private AllowMaxAngleDiff: number = 8; private readonly AllowMaxAngleDiff: number = 8;
private ExpriedTimeSec: number = 60; private readonly ExpriedTimeSec: number = 60;
private RedisCommonKey: string = 'Service:captchaSession:'; private readonly RedisCommonKey: string = 'Service:captchaSession:';
constructor() { constructor() {
this.logger.info('旋转图像验证服务已启动'); this.logger.info('旋转图像验证服务已启动');
} }
private async get(session: string) { private async get(session: string): Promise<CaptchaSessionDataJSON | undefined> {
try { try {
const result = await RedisConnection.get(this.RedisCommonKey + session); const result = await RedisConnection.get(this.RedisCommonKey + session);
if (result === null) if (result === null)
@@ -24,7 +34,7 @@ class _captchaSession {
} }
} }
private async remove(session: string) { private async remove(session: string): Promise<void> {
try { try {
await RedisConnection.del(this.RedisCommonKey + session); await RedisConnection.del(this.RedisCommonKey + session);
} catch (error) { } catch (error) {
@@ -39,7 +49,7 @@ class _captchaSession {
* @returns true存储成功 false存储失败 * @returns true存储成功 false存储失败
*/ */
public async add(session: string, rotateDeg: number): Promise<boolean> { public async add(session: string, rotateDeg: number): Promise<boolean> {
const result = { const result: CaptchaSessionDataJSON = {
rotateDeg: rotateDeg, rotateDeg: rotateDeg,
tryCount: 0, tryCount: 0,
isPassed: false isPassed: false