20 lines
729 B
Python
20 lines
729 B
Python
"""Authentication bootstrap endpoints for the Mission Control API."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Depends, HTTPException, status
|
|
|
|
from app.core.auth import AuthContext, get_auth_context
|
|
from app.schemas.users import UserRead
|
|
|
|
router = APIRouter(prefix="/auth", tags=["auth"])
|
|
AUTH_CONTEXT_DEP = Depends(get_auth_context)
|
|
|
|
|
|
@router.post("/bootstrap", response_model=UserRead)
|
|
async def bootstrap_user(auth: AuthContext = AUTH_CONTEXT_DEP) -> UserRead:
|
|
"""Return the authenticated user profile from token claims."""
|
|
if auth.actor_type != "user" or auth.user is None:
|
|
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED)
|
|
return UserRead.model_validate(auth.user)
|