Files
tasteby/backend/api/routes/auth.py
joungmin 36bec10bd0 Initial commit: Tasteby - YouTube restaurant map service
Backend (FastAPI + Oracle ADB), Frontend (Next.js), daemon worker.
Features: channel/video/restaurant management, semantic search,
Google OAuth, user reviews.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:47:19 +09:00

41 lines
1.1 KiB
Python

"""Auth API routes — Google SSO login and user info."""
from __future__ import annotations
from fastapi import APIRouter, Depends, HTTPException
from pydantic import BaseModel
from core.auth import verify_google_token, find_or_create_user, create_jwt
from api.deps import get_current_user
router = APIRouter()
class GoogleLoginRequest(BaseModel):
id_token: str
@router.post("/google")
def login_google(body: GoogleLoginRequest):
"""Verify Google ID token and return JWT + user info."""
try:
google_info = verify_google_token(body.id_token)
except ValueError as e:
raise HTTPException(401, f"Invalid Google token: {e}")
user = find_or_create_user(
provider="google",
provider_id=google_info["sub"],
email=google_info.get("email"),
nickname=google_info.get("name"),
avatar_url=google_info.get("picture"),
)
access_token = create_jwt(user)
return {"access_token": access_token, "user": user}
@router.get("/me")
def get_me(current_user: dict = Depends(get_current_user)):
"""Return current authenticated user info."""
return current_user