From 4848a9e9394b283022085a6305d00f94b11cd703 Mon Sep 17 00:00:00 2001 From: l3wdfut4pwr Date: Mon, 27 Apr 2026 13:45:09 +0300 Subject: add username change and logout --- app/routes/auth.py | 58 ------------------------------------------------------ 1 file changed, 58 deletions(-) delete mode 100644 app/routes/auth.py (limited to 'app/routes/auth.py') diff --git a/app/routes/auth.py b/app/routes/auth.py deleted file mode 100644 index 6e0d410..0000000 --- a/app/routes/auth.py +++ /dev/null @@ -1,58 +0,0 @@ -from fastapi import APIRouter, Depends, HTTPException, Response -from fastapi.security import OAuth2PasswordRequestForm -from sqlalchemy.ext.asyncio import AsyncSession - -from app.auth.jwt import create_access_token, create_refresh_token -from app.models.user import User -from app.utils.db import get_async_session -from app.utils.hash_cfg import verify_password -from app.utils.logger_cfg import logger - -router = APIRouter(tags=["auth"]) - - -@router.post("/login") -async def login( - response: Response, - form_data: OAuth2PasswordRequestForm = Depends(), - session: AsyncSession = Depends(get_async_session), -): - user = await User.get_user_by_email(form_data.username, session=session) - if not user: - user = await User.get_user_by_username( - form_data.username, session=session - ) - - if not user or not user.password: - logger.warning("Login failed | username/email={}", form_data.username) - raise HTTPException(status_code=401, detail="Invalid credentials") - - if not verify_password(form_data.password, user.password): - logger.warning("Login failed | username/email={}", form_data.username) - raise HTTPException(status_code=401, detail="Invalid credentials") - - access_token = create_access_token( - {"sub": str(user.id), "token_version": user.token_version} - ) - refresh_token = create_refresh_token( - {"sub": str(user.id), "token_version": user.token_version} - ) - - response.set_cookie( - key="access_token", - value=access_token, - httponly=True, - secure=False, - samesite="lax", - max_age=60 * 60, - ) - response.set_cookie( - key="refresh_token", - value=refresh_token, - httponly=True, - secure=True, - samesite="lax", - max_age=30 * 24 * 60 * 60, - ) - logger.info("User logged in | id={} username={}", user.id, user.username) - return {"message": "Logged in successfully"} -- cgit v1.3-3-g829e