mirror of
https://github.com/escalante29/WealthySmart.git
synced 2026-05-19 08:48:48 +02:00
Backend now exposes /api/auth/login + /api/auth/logout setting an httpOnly ws_token cookie, and get_current_user accepts either the cookie (SPA) or a Bearer token (n8n/CLI). AuthContext probes the cookie via /api/v1/auth/me. Dockerfiles and compose files updated for the new agent service deps and CopilotKit dev sidecar. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
27 lines
877 B
Python
27 lines
877 B
Python
from fastapi import APIRouter, Depends, HTTPException, status
|
|
from fastapi.security import OAuth2PasswordRequestForm
|
|
|
|
from app.auth import create_access_token, get_current_user, get_current_user_cookie_or_bearer
|
|
from app.config import settings
|
|
|
|
router = APIRouter(prefix="/auth", tags=["auth"])
|
|
|
|
|
|
@router.post("/login")
|
|
def login(form_data: OAuth2PasswordRequestForm = Depends()):
|
|
if (
|
|
form_data.username != settings.ADMIN_USERNAME
|
|
or form_data.password != settings.ADMIN_PASSWORD
|
|
):
|
|
raise HTTPException(
|
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
|
detail="Invalid credentials",
|
|
)
|
|
token = create_access_token(form_data.username)
|
|
return {"access_token": token, "token_type": "bearer"}
|
|
|
|
|
|
@router.get("/me")
|
|
def me(username: str = Depends(get_current_user_cookie_or_bearer)):
|
|
return {"username": username}
|