CaiYouHui后端fastapi实现

auth.py 1.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from pydantic import BaseModel, Field
  2. from typing import Optional
  3. from datetime import datetime, timezone, timedelta
  4. from .user import UserResponse
  5. class TokenBase(BaseModel):
  6. access_token: str
  7. refresh_token: Optional[str] = None
  8. token_type: str = "bearer"
  9. expires_in: int
  10. class TokenResponse(TokenBase):
  11. user: UserResponse
  12. class LoginRequest(BaseModel):
  13. username: str = Field(..., min_length=1)
  14. password: str = Field(..., min_length=1)
  15. class EmailVerifyRequest(BaseModel):
  16. email: str
  17. class ResetPasswordRequest(BaseModel):
  18. token: str
  19. new_password: str = Field(..., min_length=8, max_length=100)
  20. confirm_password: str
  21. class Config:
  22. schema_extra = {
  23. "example": {
  24. "username": "john_doe",
  25. "email": "user@example.com"
  26. }
  27. }
  28. class RefreshTokenRequest(BaseModel):
  29. refresh_token: str
  30. class OAuth2Request(BaseModel):
  31. provider: str # google, github, facebook
  32. code: str
  33. redirect_uri: str