First Commit

This commit is contained in:
2026-05-12 09:09:03 +02:00
commit b567aa99e2
15 changed files with 1070 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
from fastapi import Depends, HTTPException, status
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
from ..models import User, engine
from sqlmodel import Session, select
import jwt
from ..settings import SECRET_KEY
security = HTTPBearer()
def get_current_user(credentials: HTTPAuthorizationCredentials = Depends(security)) -> User:
token = credentials.credentials
payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"])
with Session(engine) as session:
query = select(User).where(User.username == payload["username"]).limit(1)
user: User = session.exec(query).first()
if user == None:
raise HTTPException(
status_code = status.HTTP_401_UNAUTHORIZED,
detail="Credenciales invalidas"
)
return user