PASETO
Use in instance¶
Config¶
Args:
version:str- PASETO version(v1 / v2 / v3 / v4).purpose:str-local/public.secret_key:str | None: Secret key for PASETO.
[jam.paseto]
version = "v4"
purpose = "local"
secret_key = "3KVs1nMaWb8jP0_aYMhsRN_hHf9dwV1UdqKk_wUXlnM"
Usage¶
from jam import Jam
jam = Jam(config="config.toml")
Generate payload¶
Method: jam.paseto_make_payload
Args:
exp:int | None = Non: Token lifetime.data:dict[str, Any]: Data to payload.
Returns:
dict[str, Any]: Payload.
payload = jam.paseto_make_payload(
exp=3600,
data={
"id": 1,
"role": "admin"
}
)
print(token)
>>> {
'iat': 1772129106.102009,
'exp': 1772132706.102009,
'pit': '0c2c38d2-5dcb-4294-bb2d-0820f6ff787d',
'data': {'id': 1, 'role': 'admin'}
}
Create token¶
Method: jam.paset_create
Args:
payload:dict[str, Any]- Token payload.footer:dict[str, Any] | str | None- Token footer.
Returns:
str: PASETO.
token = jam.paseto_create(
payload=payload,
footer={
"some": "footer",
"as": "dict"
}
)
print(token)
>>> v4.local.wTgWfsaSTjBcuZSqI7mT...
Decode token¶
Method: jam.paseto_decode
Args:
token:str- PASETO.check_exp:bool = True- Check token expiration.check_list:bool = True- Check token list.
Returns:
dict[str, dict[str, Any] | str | None] - dict like {"payload": {<payload_data>}, "footer": <footer_data>.
data = jam.paseto_decode(
token=token,
check_exp=True,
check_list=False
)
print(data)
>>> {
'payload': {
'data': {'id': 1, 'role': 'admin'},
'exp': 1772132706.102009,
'iat': 1772129106.102009,
'pit': '0c2c38d2-5dcb-4294-bb2d-0820f6ff787d'
},
'footer': {
'as': 'dict',
'some': 'footer'
}
}
Use out of instance¶
Modules:
jam.paseto.PASETOv1jam.paseto.PASETOv2jam.paseto.PASETOv3jam.paseto.PASETOv4
For example, we will show how to work with v4.
Built¶
Method: PASETOv4.key
Args:
purpose:str-local/public.secret_key:str | bytes: Symmetric key for local and Asymmetric key for public.
Returns:
PASETOv4: Built PASETOv4 instance.
from jam.paseto import PASETOv4`
paseto = PASETOv4.key(
purpose="local",
secret_key="3KVs1nMaWb8jP0_aYMhsRN_hHf9dwV1UdqKk_wUXlnM"
)
Encode token¶
Method: paseto.encode
Args:
payload:dict[str, Any]- Token payload.footer:dict[str, Any] | str | None = Non- Token footer.serializer:type[BaseEncoder] | BaseEncoder = JamEncoder- JSON serializer.
Returns:
str: PASETO.
token = paseto.encode(
payload={"id": 1, "role": "admin"},
footer="some_footer_as_string"
)
print(token)
>>> v4.local.Py0Y4CbmylrmFo3F54u7l1gZCfd
Decode token¶
Method: paseto.decode
Args:
token:str- PASETO token.serializer:type[BaseEncoder] | BaseEncoder = JamEncoder- JSON serializer.
Returns:
tuple[dict[str, Any], dict[str, Any] | str, | None] - Decoded payload and footer.
payload, footer = paseto.decode(
token=token,
check_exp=True,
check_list=False
)
print(payload)
>>> {
'id': 1,
'role': 'admin'
}
print(footer)
>>> "some_footer_as_string"