feat: 添加验证码验证,用户注册开关

This commit is contained in:
2025-02-12 23:44:19 +08:00
parent 2f28d6d5e0
commit 6a6b2b0827
2 changed files with 60 additions and 5 deletions

View File

@@ -12,6 +12,9 @@ import random
import string
from PIL import Image, ImageDraw, ImageFont
from fastapi import Request
from config.constant import RedisKeyConfig
class Captcha:
@@ -110,3 +113,28 @@ class Captcha:
draw.line((x1, y1, x2, y2),
fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
width=1)
@classmethod
async def verify_code(cls, request: Request, code: str, session_id: str) -> dict:
"""
验证验证码
:param request
:param code: 验证码
:param session_id: 会话ID
"""
redis_code = await request.app.state.redis.get(f"{RedisKeyConfig.CAPTCHA_CODES.key}:{session_id}")
if redis_code is None:
return {
"status": False,
"msg": "验证码已过期"
}
if str(redis_code).lower() == code.lower():
await request.app.state.redis.delete(f"{RedisKeyConfig.CAPTCHA_CODES.key}:{session_id}")
return {
"status": True,
"msg": "验证码正确"
}
return {
"status": False,
"msg": "验证码错误"
}