Allow lifetime_seconds to be None to get session cookies

This commit is contained in:
François Voron
2021-03-19 18:19:58 +01:00
parent 902bcdb8d2
commit ef4a54c204
10 changed files with 20 additions and 15 deletions

View File

@ -1,4 +1,5 @@
from datetime import datetime, timedelta
from typing import Optional
import jwt
@ -6,9 +7,13 @@ JWT_ALGORITHM = "HS256"
def generate_jwt(
data: dict, lifetime_seconds: int, secret: str, algorithm: str = JWT_ALGORITHM
data: dict,
secret: str,
lifetime_seconds: Optional[int] = None,
algorithm: str = JWT_ALGORITHM,
) -> str:
payload = data.copy()
expire = datetime.utcnow() + timedelta(seconds=lifetime_seconds)
payload["exp"] = expire
if lifetime_seconds:
expire = datetime.utcnow() + timedelta(seconds=lifetime_seconds)
payload["exp"] = expire
return jwt.encode(payload, secret, algorithm=algorithm)