feat: 添加验证码验证,用户注册开关
This commit is contained in:
@@ -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": "验证码错误"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user