File size: 690 Bytes
4f26fae
 
 
 
a3aa6c1
4f26fae
a3aa6c1
 
 
4f26fae
a3aa6c1
 
 
4f26fae
a3aa6c1
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import os
import jwt
from datetime import datetime, timedelta


class JWTUtil:
    def __init__(self, algorithm="HS256"):
        self.secret_key = os.getenv("JWT_SECRET_KEY")
        self.algorithm = algorithm

    def generate_jwt(self, payload, expiration_minutes=60):
        payload["exp"] = datetime.now() + timedelta(minutes=expiration_minutes)
        return jwt.encode(payload, self.secret_key, algorithm=self.algorithm)

    def validate_jwt(self, token):
        try:
            return jwt.decode(token, self.secret_key, algorithms=[self.algorithm])
        except jwt.ExpiredSignatureError:
            return None
        except jwt.InvalidTokenError:
            return None