Neda/Back/core/jwt.py
2026-03-06 15:16:41 +03:30

42 lines
859 B
Python
Executable File

from datetime import datetime, timedelta, timezone
from jose import jwt, JWTError
from core.config import settings
def create_access_token(
subject: str,
expires_delta: timedelta | None = None,
) -> str:
if expires_delta:
expire = datetime.now(timezone.utc) + expires_delta
else:
expire = datetime.now(timezone.utc) + timedelta(
minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES
)
payload = {
"sub": subject,
"exp": expire,
}
return jwt.encode(
payload,
settings.SECRET_KEY,
algorithm=settings.ALGORITHM,
)
def decode_token(token: str):
try:
payload = jwt.decode(
token,
settings.SECRET_KEY,
algorithms=[settings.ALGORITHM],
)
return payload
except JWTError:
return None