Video-Rag / app /services /auth.py
Hammad712's picture
first commit
e84d389
raw
history blame
1.02 kB
from passlib.context import CryptContext
from datetime import datetime, timedelta
import jwt
from ..config import settings
from ..db.mongodb import mongodb
from ..models.user import UserInDB
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
def verify_password(plain, hashed):
return pwd_context.verify(plain, hashed)
def get_password_hash(password):
return pwd_context.hash(password)
def create_access_token(data: dict):
to_encode = data.copy()
expire = datetime.utcnow() + timedelta(minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES)
to_encode.update({"exp": expire})
return jwt.encode(to_encode, settings.SECRET_KEY, algorithm=settings.ALGORITHM)
def get_user(username: str):
user = mongodb.users.find_one({"username": username})
return UserInDB(**user) if user else None
def authenticate_user(username: str, password: str):
user = get_user(username)
if not user or not verify_password(password, user.hashed_password):
return None
return user