ソースを参照

fix: make social login email optional in schema and handle correctly in router

unknown 2 日 前
コミット
3d7c7d0d73
2 ファイル変更5 行追加2 行削除
  1. 4 1
      backend/routers/auth.py
  2. 1 1
      backend/schemas.py

+ 4 - 1
backend/routers/auth.py

@@ -87,7 +87,7 @@ async def login(request: Request, user_data: schemas.UserLogin, lang: str = "en"
 
 @router.post("/social-login", response_model=schemas.Token)
 async def social_login(request: Request, data: schemas.SocialLogin):
-    email = data.email.lower()
+    email = data.email.lower() if data.email else None
     first_name = data.first_name
     last_name = data.last_name
 
@@ -112,6 +112,9 @@ async def social_login(request: Request, data: schemas.SocialLogin):
             print(f"Google Token Verification Error: {e}")
             raise HTTPException(status_code=401, detail="Invalid Google token")
 
+    if not email:
+        raise HTTPException(status_code=400, detail="Email is required")
+
     # 2. Proceed with login/registration
     user = db.execute_query("SELECT id, email, role, is_active FROM users WHERE email = %s", (email,))
     

+ 1 - 1
backend/schemas.py

@@ -191,7 +191,7 @@ class Token(BaseModel):
 class SocialLogin(BaseModel):
     provider: str # 'google' or 'facebook'
     token: str
-    email: EmailStr
+    email: Optional[EmailStr] = None
     first_name: Optional[str] = None
     last_name: Optional[str] = None
     preferred_language: Optional[str] = "en"