From 3c4b2e2877ea3132d488ed8a9f2b1f526fdbd0d5 Mon Sep 17 00:00:00 2001 From: sshakndr Date: Fri, 31 Jan 2025 12:47:44 +0700 Subject: [PATCH] feat(python): add jwt token lifetime from config --- CHANGELOG.md | 1 + .../python/src/configuration/configuration.py | 3 +++ web/documentserver-example/python/src/utils/jwtManager.py | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8da7509a..05214fe8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Change Log +- python: jwt token lifetime from config - java-spring: jwt token lifetime from config - java: jwt token lifetime from config - csharp-mvc: jwt token lifetime from config diff --git a/web/documentserver-example/python/src/configuration/configuration.py b/web/documentserver-example/python/src/configuration/configuration.py index c20d990d..ef1ffba8 100644 --- a/web/documentserver-example/python/src/configuration/configuration.py +++ b/web/documentserver-example/python/src/configuration/configuration.py @@ -92,6 +92,9 @@ class ConfigurationManager: def jwt_header(self) -> str: return environ.get('JWT_HEADER') or 'Authorization' + def jwt_expires_in(self) -> int: + return int(environ.get('JWT_EXPIRES_IN', 5)) + def jwt_use_for_request(self) -> bool: use = environ.get('JWT_USE_FOR_REQUEST') return string.boolean(use, True) diff --git a/web/documentserver-example/python/src/utils/jwtManager.py b/web/documentserver-example/python/src/utils/jwtManager.py index 1822eb08..3509f58c 100644 --- a/web/documentserver-example/python/src/utils/jwtManager.py +++ b/web/documentserver-example/python/src/utils/jwtManager.py @@ -16,6 +16,7 @@ """ +import time import jwt from src.configuration import ConfigurationManager @@ -34,6 +35,9 @@ def useForRequest(): # encode a payload object into a token using a secret key and decodes it into the utf-8 format def encode(payload): + now = time.time() + payload['iat'] = now + payload['exp'] = now + config_manager.jwt_expires_in() * 60 return jwt.encode(payload, config_manager.jwt_secret(), algorithm='HS256')