ai-agent / auth /auth_handler.py
abdibrahem's picture
Add authorization to the project
4339866
raw
history blame contribute delete
808 Bytes
from datetime import datetime, timedelta
from typing import Optional
from jose import JWTError, jwt
from passlib.context import CryptContext
from schemas.auth import TokenData
from config import settings
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
SECRET_KEY = settings.SECRET_KEY
ALGORITHM = settings.ALGORITHM
ACCESS_TOKEN_EXPIRE_MINUTES = settings.ACCESS_TOKEN_EXPIRE_MINUTES
def decode_token(token: str):
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
username: str = payload.get("sub")
user_id: str = payload.get("user_id")
if username is None and user_id is None:
return None
token_data = TokenData(username=username, user_id=user_id)
except JWTError:
return None
return token_data