First Commit
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user