dev2004v's picture
Upload 10 files
f2533f4 verified
import jwt
import os
from datetime import datetime, timedelta, timezone
from dotenv import load_dotenv
load_dotenv()
SECRET_KEY = os.getenv("SECRET_KEY")
def generate_jwt(user_id, username, email):
payload = {
"user_id": str(user_id),
"username": username,
"email": email,
"exp": datetime.now(timezone.utc) + timedelta(days=7),
"iat": datetime.now(timezone.utc)
}
return jwt.encode(payload, SECRET_KEY, algorithm="HS256")
def decode_jwt(token):
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"])
return payload
except jwt.ExpiredSignatureError:
raise Exception("Token has expired")
except jwt.InvalidTokenError:
raise Exception("Invalid token")