From ac945a864c09276489d889568cb5b70e6878b587 Mon Sep 17 00:00:00 2001 From: aaron <> Date: Tue, 4 Mar 2025 11:51:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=8D=E9=A6=88=E6=89=8B=E6=9C=BA=E5=8F=B7?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=AA=8C=E8=AF=81=E7=A0=81=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/feedback.py | 8 ++++++++ app/api/endpoints/user.py | 14 +++----------- app/core/qcloud.py | 2 +- app/models/feedback.py | 1 + 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/api/endpoints/feedback.py b/app/api/endpoints/feedback.py index 45e5c44..57496ac 100644 --- a/app/api/endpoints/feedback.py +++ b/app/api/endpoints/feedback.py @@ -15,6 +15,7 @@ from app.models.feedback import ( from typing import List import logging from app.core.config import settings +from app.core.redis_client import redis_client router = APIRouter() @@ -71,6 +72,13 @@ async def apply_partner( db: Session = Depends(get_db), ): """申请成为合伙人""" + + # 验证验证码 + stored_code = redis_client.get_client().get(f"verify_code:{apply_data.phone}") + print(f"stored_code: {stored_code}") + if not stored_code or stored_code != apply_data.phone_code: + return error_response(message="验证码错误或已过期") + if apply_data.user_id>0: current_user = db.query(UserDB).filter(UserDB.userid == apply_data.user_id).first() else: diff --git a/app/api/endpoints/user.py b/app/api/endpoints/user.py index d89d8e8..b001715 100644 --- a/app/api/endpoints/user.py +++ b/app/api/endpoints/user.py @@ -25,18 +25,10 @@ from app.models.merchant import MerchantDB from app.models.address import AddressDB, AddressInfo from app.models.user import UserUpdateRoles, UserUpdateDeliveryCommissionRate from app.models.order import ShippingOrderDB, OrderStatus +from app.core.redis_client import redis_client router = APIRouter() -# Redis 连接 -redis_client = redis.Redis( - host=settings.REDIS_HOST, - port=settings.REDIS_PORT, - db=settings.REDIS_DB, - password=settings.REDIS_PASSWORD, - decode_responses=True -) - @router.post("/send-code") async def send_verify_code(request: VerifyCodeRequest): @@ -48,7 +40,7 @@ async def send_verify_code(request: VerifyCodeRequest): code, request_id = await qcloud_manager.send_sms_code(phone) # 存储验证码到 Redis - redis_client.setex( + redis_client.get_client().setex( f"verify_code:{phone}", settings.VERIFICATION_CODE_EXPIRE_SECONDS, code @@ -70,7 +62,7 @@ async def login( verify_code = user_login.verify_code # 验证验证码 - stored_code = redis_client.get(f"verify_code:{phone}") + stored_code = redis_client.get_client().get(f"verify_code:{phone}") if not stored_code or stored_code != verify_code: return error_response(message="验证码错误或已过期") diff --git a/app/core/qcloud.py b/app/core/qcloud.py index 3099391..57ab452 100644 --- a/app/core/qcloud.py +++ b/app/core/qcloud.py @@ -65,7 +65,7 @@ class QCloudManager: ) self.cos_client = CosS3Client(config) - def generate_phone_code(self, length: int = 6) -> str: + def generate_phone_code(self, length: int = 4) -> str: """生成验证码""" return ''.join(random.choices(string.digits, k=length)) diff --git a/app/models/feedback.py b/app/models/feedback.py index aa65bf5..0458db9 100644 --- a/app/models/feedback.py +++ b/app/models/feedback.py @@ -52,6 +52,7 @@ class PartnerApplyCreate(BaseModel): user_id: int = Field(..., description="用户ID") name: str = Field(..., max_length=50, description="姓名") phone: str = Field(..., max_length=20, description="联系电话") + phone_code: str = Field(..., max_length=10, description="验证码") type: str = Field(..., max_length=50, description="合伙人类型") service_target: str = Field(..., max_length=200, description="服务对象/区域")