Initial commit: Happy Up monorepo through Sprint 5.
Document-driven MVP with FastAPI backend, Vue H5, WeChat mini shell, product demo, and Docker dev stack. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
from fastapi import APIRouter, HTTPException, Request
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from app.core.response import error, ok
|
||||
from app.db.session import get_db
|
||||
from app.schemas.models import LoginRequest
|
||||
from app.services import auth as auth_service
|
||||
from sqlalchemy.orm import Session
|
||||
from fastapi import Depends
|
||||
|
||||
router = APIRouter(prefix="/api/auth", tags=["Auth"])
|
||||
|
||||
|
||||
@router.post("/login")
|
||||
def login(body: LoginRequest, request: Request, db: Session = Depends(get_db)):
|
||||
try:
|
||||
user, token = auth_service.authenticate(db, body)
|
||||
except ValueError as exc:
|
||||
if str(exc) == "invalid_code":
|
||||
return JSONResponse(
|
||||
status_code=401,
|
||||
content=error(10002, "invalid_verification_code", request.state.request_id),
|
||||
)
|
||||
return JSONResponse(
|
||||
status_code=400,
|
||||
content=error(10003, str(exc), request.state.request_id),
|
||||
)
|
||||
|
||||
return ok(
|
||||
{"token": token, "user": auth_service.user_to_dict(user)},
|
||||
request_id=request.state.request_id,
|
||||
)
|
||||
Reference in New Issue
Block a user