kenard-pc4ogw/endpoints/logout.post.py
2025-03-21 09:50:30 +01:00

45 lines
1.2 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from core.database import fake_users_db
from fastapi.responses import JSONResponse
from core.auth import authenticate_user, create_access_token, create_refresh_token
from datetime import timedelta
router = APIRouter()
@router.post("/login")
async def login_handler(
username: str,
password: str,
response: JSONResponse
):
"""Demo login endpoint"""
user = fake_users_db.get(username)
if not user or user["password"] != password:
raise HTTPException(status_code=400, detail="Invalid credentials")
access_token = create_access_token(user["id"])
refresh_token = create_refresh_token(user["id"])
response.set_cookie(
key="access_token",
value=access_token,
httponly=True,
max_age=1800,
expires=1800
)
response.set_cookie(
key="refresh_token",
value=refresh_token,
httponly=True,
max_age=604800,
expires=604800
)
response.set_cookie(
key="session_id",
value=user["id"],
httponly=True,
max_age=604800,
expires=604800
)
return {"message": "Login successful"}