in src/services/clients/jwt_management_client.py [0:0]
def sign(self, claims: dict | str,
exp: datetime | timedelta | int = None,
iss: str | None = None, headers: dict = None) -> str:
"""
:param claims:
:param exp:
:param iss:
:param headers:
:return:
"""
if isinstance(claims, dict): # adding custom params to claims
if exp:
claims['exp'] = self._normalize_exp(exp)
claims['iat'] = int(time.time()) # issued at
if isinstance(iss, str):
claims['iss'] = iss
headers = headers or {}
token = jwt.JWT(
header=self._sign_header(**headers),
claims=claims
)
token.make_signed_token(self._key)
return token.serialize()