feat: 切换邮箱认证并重构前后端启动与门禁
This commit is contained in:
@@ -1,24 +1,22 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
SUPABASE_PASSWORD_MIN_LENGTH = 6
|
||||
SUPABASE_PHONE_PATTERN = r"^\+[1-9]\d{7,14}$"
|
||||
SUPABASE_EMAIL_PATTERN = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
|
||||
|
||||
|
||||
class OtpSendRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
phone: str = Field(pattern=SUPABASE_PHONE_PATTERN)
|
||||
email: str = Field(pattern=SUPABASE_EMAIL_PATTERN)
|
||||
|
||||
|
||||
class PhoneSessionCreateRequest(BaseModel):
|
||||
class EmailSessionCreateRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
phone: str = Field(pattern=SUPABASE_PHONE_PATTERN)
|
||||
token: str = Field(pattern=r"^\d{6}$")
|
||||
email: str = Field(pattern=SUPABASE_EMAIL_PATTERN)
|
||||
token: str = Field(min_length=6, max_length=6)
|
||||
|
||||
|
||||
class SessionRefreshRequest(BaseModel):
|
||||
@@ -31,7 +29,7 @@ class SessionDeleteRequest(BaseModel):
|
||||
|
||||
class AuthUser(BaseModel):
|
||||
id: str
|
||||
phone: str = Field(pattern=SUPABASE_PHONE_PATTERN)
|
||||
email: str = Field(pattern=SUPABASE_EMAIL_PATTERN)
|
||||
|
||||
|
||||
class SessionResponse(BaseModel):
|
||||
@@ -42,25 +40,19 @@ class SessionResponse(BaseModel):
|
||||
user: AuthUser
|
||||
|
||||
|
||||
class UserByPhoneResponse(BaseModel):
|
||||
class UserByEmailResponse(BaseModel):
|
||||
id: str
|
||||
phone: str = Field(pattern=SUPABASE_PHONE_PATTERN)
|
||||
email: str = Field(pattern=SUPABASE_EMAIL_PATTERN)
|
||||
created_at: str
|
||||
phone_confirmed_at: str | None = None
|
||||
email_confirmed_at: str | None = None
|
||||
|
||||
|
||||
class UserByIdResponse(BaseModel):
|
||||
id: str
|
||||
phone: str | None = None
|
||||
email: str | None = None
|
||||
created_at: str
|
||||
phone_confirmed_at: str | None = None
|
||||
email_confirmed_at: str | None = None
|
||||
|
||||
|
||||
class OtpSendResponse(BaseModel):
|
||||
phone: str = Field(pattern=SUPABASE_PHONE_PATTERN)
|
||||
|
||||
|
||||
class RegistrationBootstrapRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
user_id: UUID
|
||||
email: str = Field(pattern=SUPABASE_EMAIL_PATTERN)
|
||||
|
||||
Reference in New Issue
Block a user