gsparc-mezzouna-api/app/routes/auth_routes.py

26 lines
985 B
Python

"""Routes — authentification (login/logout pages)."""
from fastapi import APIRouter, Form, Request
from fastapi.responses import RedirectResponse, HTMLResponse
from app.auth import login_user, logout_user
from app.templates import templates
router = APIRouter()
@router.get("/login", response_class=HTMLResponse)
async def login_page(request: Request, error: str = ""):
return templates.TemplateResponse("login.html", {"request": request, "error": error})
@router.post("/login")
async def login(request: Request, username: str = Form(...), password: str = Form(...)):
if login_user(request, username, password):
return RedirectResponse(url="/", status_code=303)
return templates.TemplateResponse("login.html", {"request": request, "error": "اسم المستخدم أو كلمة المرور غير صحيحة"}, status_code=401)
@router.get("/logout")
async def logout(request: Request):
logout_user(request)
return RedirectResponse(url="/login")