反馈手机号,增加验证码功能。
This commit is contained in:
parent
a2c248ff4d
commit
ac945a864c
@ -15,6 +15,7 @@ from app.models.feedback import (
|
|||||||
from typing import List
|
from typing import List
|
||||||
import logging
|
import logging
|
||||||
from app.core.config import settings
|
from app.core.config import settings
|
||||||
|
from app.core.redis_client import redis_client
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
@ -71,6 +72,13 @@ async def apply_partner(
|
|||||||
db: Session = Depends(get_db),
|
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:
|
if apply_data.user_id>0:
|
||||||
current_user = db.query(UserDB).filter(UserDB.userid == apply_data.user_id).first()
|
current_user = db.query(UserDB).filter(UserDB.userid == apply_data.user_id).first()
|
||||||
else:
|
else:
|
||||||
|
|||||||
@ -25,18 +25,10 @@ from app.models.merchant import MerchantDB
|
|||||||
from app.models.address import AddressDB, AddressInfo
|
from app.models.address import AddressDB, AddressInfo
|
||||||
from app.models.user import UserUpdateRoles, UserUpdateDeliveryCommissionRate
|
from app.models.user import UserUpdateRoles, UserUpdateDeliveryCommissionRate
|
||||||
from app.models.order import ShippingOrderDB, OrderStatus
|
from app.models.order import ShippingOrderDB, OrderStatus
|
||||||
|
from app.core.redis_client import redis_client
|
||||||
|
|
||||||
router = APIRouter()
|
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")
|
@router.post("/send-code")
|
||||||
async def send_verify_code(request: VerifyCodeRequest):
|
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)
|
code, request_id = await qcloud_manager.send_sms_code(phone)
|
||||||
|
|
||||||
# 存储验证码到 Redis
|
# 存储验证码到 Redis
|
||||||
redis_client.setex(
|
redis_client.get_client().setex(
|
||||||
f"verify_code:{phone}",
|
f"verify_code:{phone}",
|
||||||
settings.VERIFICATION_CODE_EXPIRE_SECONDS,
|
settings.VERIFICATION_CODE_EXPIRE_SECONDS,
|
||||||
code
|
code
|
||||||
@ -70,7 +62,7 @@ async def login(
|
|||||||
verify_code = user_login.verify_code
|
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:
|
if not stored_code or stored_code != verify_code:
|
||||||
return error_response(message="验证码错误或已过期")
|
return error_response(message="验证码错误或已过期")
|
||||||
|
|
||||||
|
|||||||
@ -65,7 +65,7 @@ class QCloudManager:
|
|||||||
)
|
)
|
||||||
self.cos_client = CosS3Client(config)
|
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))
|
return ''.join(random.choices(string.digits, k=length))
|
||||||
|
|
||||||
|
|||||||
@ -52,6 +52,7 @@ class PartnerApplyCreate(BaseModel):
|
|||||||
user_id: int = Field(..., description="用户ID")
|
user_id: int = Field(..., description="用户ID")
|
||||||
name: str = Field(..., max_length=50, description="姓名")
|
name: str = Field(..., max_length=50, description="姓名")
|
||||||
phone: str = Field(..., max_length=20, description="联系电话")
|
phone: str = Field(..., max_length=20, description="联系电话")
|
||||||
|
phone_code: str = Field(..., max_length=10, description="验证码")
|
||||||
type: str = Field(..., max_length=50, description="合伙人类型")
|
type: str = Field(..., max_length=50, description="合伙人类型")
|
||||||
service_target: str = Field(..., max_length=200, description="服务对象/区域")
|
service_target: str = Field(..., max_length=200, description="服务对象/区域")
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user