jamlib 2.6.0b0.dev1__tar.gz → 2.6.0b0.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/PKG-INFO +1 -1
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/pyproject.toml +2 -1
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/__init__.py +1 -1
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/instance.py +51 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/instance.py +29 -1
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/paseto/utils.py +17 -5
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jamlib.egg-info/PKG-INFO +1 -1
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/LICENSE.md +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/README.md +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/setup.cfg +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/__abc_encoder__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/__abc_instances__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/__deprecated__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/__logger__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/jwt/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/jwt/lists/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/jwt/lists/json.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/jwt/lists/redis.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/jwt/tools.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/modules.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/oauth2/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/oauth2/builtin/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/oauth2/builtin/github.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/oauth2/builtin/gitlab.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/oauth2/builtin/google.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/oauth2/builtin/yandex.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/oauth2/client.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/sessions/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/sessions/json.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/aio/sessions/redis.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/encoders.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/exceptions/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/exceptions/jwt.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/exceptions/oauth2.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/exceptions/sessions.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/ext/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/ext/fastapi/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/ext/flask/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/ext/flask/extensions.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/ext/litestar/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/ext/litestar/middlewares.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/ext/litestar/plugins.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/ext/litestar/value.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/ext/starlette/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/ext/starlette/auth_backends.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/ext/starlette/value.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/jwt/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/jwt/__utils__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/jwt/lists/__abc_list_repo__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/jwt/lists/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/jwt/lists/json.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/jwt/lists/redis.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/jwt/tools.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/jwt/types.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/modules.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/oauth2/__abc_oauth2_repo__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/oauth2/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/oauth2/builtin/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/oauth2/builtin/github.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/oauth2/builtin/gitlab.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/oauth2/builtin/google.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/oauth2/builtin/yandex.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/oauth2/client.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/otp/__abc_module__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/otp/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/otp/hotp.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/otp/totp.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/paseto/__abc_paseto_repo__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/paseto/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/paseto/v1.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/paseto/v2.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/paseto/v3.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/paseto/v4.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/quick/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/quick/jwt.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/sessions/__abc_session_repo__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/sessions/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/sessions/json.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/sessions/redis.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/tests/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/tests/clients.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/tests/fakers.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/utils/__init__.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/utils/aes.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/utils/await_maybe.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/utils/config_maker.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/utils/ed.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/utils/otp_keys.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/utils/rsa.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/utils/salt_hash.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/utils/symmetric.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/utils/xchacha20poly1305.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jam/utils/xor.py +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jamlib.egg-info/SOURCES.txt +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jamlib.egg-info/dependency_links.txt +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jamlib.egg-info/requires.txt +0 -0
- {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev3}/src/jamlib.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jamlib
|
|
3
|
-
Version: 2.6.0b0.
|
|
3
|
+
Version: 2.6.0b0.dev3
|
|
4
4
|
Summary: Simple and universal library for authorization.
|
|
5
5
|
Author-email: Makridenko Adrian <adrianmakridenko@duck.com>, Ksenia Travnikova <kseniatravnikova@duck.com>
|
|
6
6
|
License: MIT License
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "jamlib"
|
|
3
|
-
version = "2.6.0b0.
|
|
3
|
+
version = "2.6.0b0.dev3"
|
|
4
4
|
description = "Simple and universal library for authorization."
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "Makridenko Adrian",email = "adrianmakridenko@duck.com"},
|
|
@@ -81,6 +81,7 @@ dev = [
|
|
|
81
81
|
"icecream>=2.1.4",
|
|
82
82
|
"isort>=6.0.1",
|
|
83
83
|
"pre-commit>=4.2.0",
|
|
84
|
+
"pyrefly>=0.39.1",
|
|
84
85
|
"ruff>=0.11.2",
|
|
85
86
|
"uvicorn>=0.37.0",
|
|
86
87
|
]
|
|
@@ -8,6 +8,7 @@ from jam.__abc_instances__ import BaseJam
|
|
|
8
8
|
from jam.__deprecated__ import deprecated
|
|
9
9
|
from jam.__logger__ import logger
|
|
10
10
|
from jam.aio.modules import JWTModule, OAuth2Module, SessionModule
|
|
11
|
+
from jam.paseto import BasePASETO
|
|
11
12
|
from jam.utils.config_maker import __config_maker__, __module_loader__
|
|
12
13
|
|
|
13
14
|
|
|
@@ -18,6 +19,7 @@ class Jam(BaseJam):
|
|
|
18
19
|
"jwt": "jam.aio.modules.JWTModule",
|
|
19
20
|
"session": "jam.aio.modules.SessionModule",
|
|
20
21
|
"oauth2": "jam.aio.modules.OAuth2Module",
|
|
22
|
+
"paseto": "jam.paseto.utils.init_paseto_instance",
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
def __init__(
|
|
@@ -34,6 +36,7 @@ class Jam(BaseJam):
|
|
|
34
36
|
self.jwt: Optional[JWTModule] = None
|
|
35
37
|
self.session: Optional[SessionModule] = None
|
|
36
38
|
self.oauth2: Optional[OAuth2Module] = None
|
|
39
|
+
self.paseto: Optional[BasePASETO] = None
|
|
37
40
|
|
|
38
41
|
config = __config_maker__(config, pointer)
|
|
39
42
|
|
|
@@ -589,3 +592,51 @@ class Jam(BaseJam):
|
|
|
589
592
|
return await self.oauth2.client_credentials_flow(
|
|
590
593
|
provider, scope, **extra_params
|
|
591
594
|
)
|
|
595
|
+
|
|
596
|
+
async def paseto_make_payload(
|
|
597
|
+
self, exp: Optional[int] = None, **data: dict[str, Any]
|
|
598
|
+
) -> dict[str, Any]:
|
|
599
|
+
"""Generate payload for PASETO.
|
|
600
|
+
|
|
601
|
+
Args:
|
|
602
|
+
exp (int | None): Token expire
|
|
603
|
+
data (dict[str, Any]): Custom data
|
|
604
|
+
|
|
605
|
+
Returns:
|
|
606
|
+
dict: Payload
|
|
607
|
+
"""
|
|
608
|
+
from jam.paseto.utils import payload_maker
|
|
609
|
+
|
|
610
|
+
return payload_maker(expire=exp, data=data)
|
|
611
|
+
|
|
612
|
+
async def paseto_create(
|
|
613
|
+
self,
|
|
614
|
+
payload: dict[str, Any],
|
|
615
|
+
footer: Optional[Union[dict[str, Any], str]],
|
|
616
|
+
) -> str:
|
|
617
|
+
"""Create new PASETO.
|
|
618
|
+
|
|
619
|
+
Args:
|
|
620
|
+
payload (dict[str, Any]): Payload
|
|
621
|
+
footer (dict | str | None): Footer
|
|
622
|
+
|
|
623
|
+
Returns:
|
|
624
|
+
str: New token
|
|
625
|
+
"""
|
|
626
|
+
return self.paseto.encode(payload=payload, footer=footer)
|
|
627
|
+
|
|
628
|
+
async def paseto_decode(
|
|
629
|
+
self, token: str, check_exp: bool = True, check_list: bool = True
|
|
630
|
+
) -> dict[str, Union[dict, Union[str, dict, None]]]:
|
|
631
|
+
"""Decode PASETO.
|
|
632
|
+
|
|
633
|
+
Args:
|
|
634
|
+
token (str): Token
|
|
635
|
+
check_exp (bool): Check exp in payload
|
|
636
|
+
check_list (bool): Check token in list
|
|
637
|
+
|
|
638
|
+
Returns:
|
|
639
|
+
dict: {'payload' PAYLOAD, 'footer': FOOTER}
|
|
640
|
+
"""
|
|
641
|
+
payload, footer = self.paseto.decode(token)
|
|
642
|
+
return {"payload": payload, "footer": footer}
|
|
@@ -602,6 +602,15 @@ class Jam(BaseJam):
|
|
|
602
602
|
def paseto_make_payload(
|
|
603
603
|
self, exp: Optional[int] = None, **data: dict[str, Any]
|
|
604
604
|
) -> dict[str, Any]:
|
|
605
|
+
"""Generate payload for PASETO.
|
|
606
|
+
|
|
607
|
+
Args:
|
|
608
|
+
exp (int | None): Token expire
|
|
609
|
+
data (dict[str, Any]): Custom data
|
|
610
|
+
|
|
611
|
+
Returns:
|
|
612
|
+
dict: Payload
|
|
613
|
+
"""
|
|
605
614
|
from jam.paseto.utils import payload_maker
|
|
606
615
|
|
|
607
616
|
return payload_maker(expire=exp, data=data)
|
|
@@ -611,10 +620,29 @@ class Jam(BaseJam):
|
|
|
611
620
|
payload: dict[str, Any],
|
|
612
621
|
footer: Optional[Union[dict[str, Any], str]],
|
|
613
622
|
) -> str:
|
|
623
|
+
"""Create new PASETO.
|
|
624
|
+
|
|
625
|
+
Args:
|
|
626
|
+
payload (dict[str, Any]): Payload
|
|
627
|
+
footer (dict | str | None): Footer
|
|
628
|
+
|
|
629
|
+
Returns:
|
|
630
|
+
str: New token
|
|
631
|
+
"""
|
|
614
632
|
return self.paseto.encode(payload=payload, footer=footer)
|
|
615
633
|
|
|
616
634
|
def paseto_decode(
|
|
617
|
-
self, token: str
|
|
635
|
+
self, token: str, check_exp: bool = True, check_list: bool = True
|
|
618
636
|
) -> dict[str, Union[dict, Union[str, dict, None]]]:
|
|
637
|
+
"""Decode PASETO.
|
|
638
|
+
|
|
639
|
+
Args:
|
|
640
|
+
token (str): Token
|
|
641
|
+
check_exp (bool): Check exp in payload
|
|
642
|
+
check_list (bool): Check token in list
|
|
643
|
+
|
|
644
|
+
Returns:
|
|
645
|
+
dict: {'payload' PAYLOAD, 'footer': FOOTER}
|
|
646
|
+
"""
|
|
619
647
|
payload, footer = self.paseto.decode(token)
|
|
620
648
|
return {"payload": payload, "footer": footer}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
import base64
|
|
4
4
|
import hashlib
|
|
5
5
|
import hmac
|
|
6
|
+
import os.path
|
|
6
7
|
from datetime import datetime
|
|
7
|
-
from typing import Any, Literal, Union
|
|
8
|
+
from typing import Any, Literal, Optional, Union
|
|
8
9
|
from uuid import uuid4
|
|
9
10
|
|
|
10
11
|
from jam.paseto import PASETO
|
|
@@ -67,7 +68,7 @@ def base64url_encode(data: Union[bytes, str]) -> bytes:
|
|
|
67
68
|
def init_paseto_instance(
|
|
68
69
|
version: Literal["v1", "v2", "v3", "v4"],
|
|
69
70
|
purpose: Literal["public", "local"],
|
|
70
|
-
key: Union[str, bytes, Any],
|
|
71
|
+
key: Union[str, bytes, Any],
|
|
71
72
|
**kwargs,
|
|
72
73
|
) -> PASETO:
|
|
73
74
|
"""Init paseto instance.
|
|
@@ -83,6 +84,11 @@ def init_paseto_instance(
|
|
|
83
84
|
"""
|
|
84
85
|
from jam.utils.config_maker import __module_loader__
|
|
85
86
|
|
|
87
|
+
if os.path.isfile(key):
|
|
88
|
+
with open(key) as file:
|
|
89
|
+
key = file.read()
|
|
90
|
+
key = key
|
|
91
|
+
|
|
86
92
|
# FIXME: Fix custom module init
|
|
87
93
|
if kwargs.get("module", None):
|
|
88
94
|
_paseto: type[PASETO] = __module_loader__(kwargs["module"])
|
|
@@ -95,7 +101,9 @@ def init_paseto_instance(
|
|
|
95
101
|
return _paseto.key(purpose, key)
|
|
96
102
|
|
|
97
103
|
|
|
98
|
-
def payload_maker(
|
|
104
|
+
def payload_maker(
|
|
105
|
+
expire: Optional[int], data: dict[str, Any]
|
|
106
|
+
) -> dict[str, Any]:
|
|
99
107
|
"""Generate PASETO payload.
|
|
100
108
|
|
|
101
109
|
```json
|
|
@@ -110,13 +118,17 @@ def payload_maker(expire: int, data: dict[str, Any]) -> dict[str, Any]:
|
|
|
110
118
|
```
|
|
111
119
|
|
|
112
120
|
Args:
|
|
113
|
-
expire (int): Token lifetime
|
|
121
|
+
expire (int | None): Token lifetime
|
|
114
122
|
data (dict[str, Any]): Custom data
|
|
115
123
|
|
|
116
124
|
Returns:
|
|
117
125
|
dict: Payload
|
|
118
126
|
"""
|
|
119
127
|
now = datetime.now().timestamp()
|
|
120
|
-
_payload = {
|
|
128
|
+
_payload = {
|
|
129
|
+
"iat": now,
|
|
130
|
+
"exp": (expire + now) if expire else None,
|
|
131
|
+
"pit": str(uuid4()),
|
|
132
|
+
}
|
|
121
133
|
|
|
122
134
|
return _payload | data
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jamlib
|
|
3
|
-
Version: 2.6.0b0.
|
|
3
|
+
Version: 2.6.0b0.dev3
|
|
4
4
|
Summary: Simple and universal library for authorization.
|
|
5
5
|
Author-email: Makridenko Adrian <adrianmakridenko@duck.com>, Ksenia Travnikova <kseniatravnikova@duck.com>
|
|
6
6
|
License: MIT License
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|