知你客服

This commit is contained in:
rjb
2026-03-06 22:31:41 +08:00
parent 171a6edf94
commit 9d3198f6bc
31 changed files with 6579 additions and 80 deletions

View File

@@ -4,7 +4,8 @@
from fastapi import APIRouter, Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
from sqlalchemy.orm import Session
from pydantic import BaseModel, EmailStr
from pydantic import BaseModel, field_validator
import re
import logging
from app.core.database import get_db
from app.core.security import verify_password, get_password_hash, create_access_token
@@ -31,9 +32,16 @@ oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/api/v1/auth/login")
class UserCreate(BaseModel):
"""用户创建模型"""
username: str
email: EmailStr
email: str
password: str
@field_validator("email")
@classmethod
def email_format(cls, v: str) -> str:
if not v or not re.match(r"^[^@]+@[^@]+\.[^@]+$", v):
raise ValueError("邮箱格式无效")
return v.lower()
class UserResponse(BaseModel):
"""用户响应模型"""