This commit is contained in:
aaron 2025-03-06 18:20:35 +08:00
parent 9d75cc250d
commit 7370674398
2 changed files with 12 additions and 6 deletions

View File

@ -79,7 +79,7 @@ async def login(
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="验证码错误或已过期")
redis_client.delete(f"verify_code:{phone}") redis_client.get_client().delete(f"verify_code:{phone}")
# 查找或创建用户 # 查找或创建用户
user = db.query(UserDB).filter(UserDB.phone == phone).first() user = db.query(UserDB).filter(UserDB.phone == phone).first()
@ -520,12 +520,15 @@ async def update_user_community(
@router.post("/change-password", response_model=ResponseModel) @router.post("/change-password", response_model=ResponseModel)
async def change_password( async def change_password(
request: ChangePasswordRequest, request: ChangePasswordRequest,
db: Session = Depends(get_db), db: Session = Depends(get_db)
current_user: UserDB = Depends(get_current_user) # 获取当前登录用户
): ):
"""通过短信验证码修改密码""" """通过短信验证码修改密码"""
user = db.query(UserDB).filter(UserDB.phone == request.phone).first()
if not user:
return error_response(message="用户不存在")
# 验证短信验证码 # 验证短信验证码
redis_code = redis_client.get(f"verify_code:{current_user.phone}") redis_code = redis_client.get_client().get(f"verify_code:{user.phone}")
if not redis_code: if not redis_code:
return error_response(message="验证码已过期") return error_response(message="验证码已过期")
@ -533,12 +536,14 @@ async def change_password(
return error_response(message="验证码错误") return error_response(message="验证码错误")
try: try:
# 更新密码 # 更新密码
current_user.password = get_password_hash(request.new_password) user.password = get_password_hash(request.new_password)
db.commit() db.commit()
# 删除验证码 # 删除验证码
redis_client.delete(f"verify_code:{current_user.phone}") redis_client.get_client().delete(f"verify_code:{request.phone}")
return success_response(message="密码修改成功") return success_response(message="密码修改成功")
except Exception as e: except Exception as e:

View File

@ -114,6 +114,7 @@ class UserPasswordLogin(BaseModel):
role: UserRole = Field(default=UserRole.DELIVERYMAN) role: UserRole = Field(default=UserRole.DELIVERYMAN)
class ChangePasswordRequest(BaseModel): class ChangePasswordRequest(BaseModel):
phone: str = Field(..., pattern="^1[3-9]\d{9}$")
verify_code: str = Field(..., min_length=4, max_length=6) verify_code: str = Field(..., min_length=4, max_length=6)
new_password: str = Field(..., min_length=6, max_length=20) new_password: str = Field(..., min_length=6, max_length=20)