Add graphic captcha before user SMS login

This commit is contained in:
2026-07-09 12:09:10 +08:00
parent 0e2706a4f4
commit 34d6dd01c7
10 changed files with 234 additions and 13 deletions

View File

@@ -6,15 +6,21 @@ from sqlalchemy.orm import Session
from app.core.database import get_db
from app.core.dependencies import get_current_token_payload
from app.core.responses import api_success
from app.schemas.auth import LoginRequest, LoginResponse, SendSmsRequest
from app.schemas.auth import CaptchaResponse, LoginRequest, LoginResponse, SendSmsRequest
from app.services.auth_service import AuthService
from app.services.captcha_service import CaptchaService
router = APIRouter()
@router.get("/captcha")
def captcha() -> dict:
return api_success(CaptchaResponse.model_validate(CaptchaService.create()).model_dump())
@router.post("/sms/send")
def send_sms(payload: SendSmsRequest, db: Session = Depends(get_db)) -> dict:
AuthService.send_sms_code(db, payload.phone)
AuthService.send_sms_code(db, payload.phone, payload.captchaId, payload.captchaCode)
return api_success(message="发送成功")