Skip to content

jam.jwt.module

module

Classes:

Name Description
JWT

JWT factory.

JWT

JWT(
    alg: str,
    secret: KeyLike = getenv("JAM_JWT_SECRET_KEY"),
    password: str | bytes | None = None,
    list: dict[str, Any] | None = None,
    serializer: BaseEncoder
    | type[BaseEncoder] = JsonEncoder,
    logger: BaseLogger = logger,
)

Bases: BaseJWT

JWT factory.

This class provides JWT encoding and decoding functionality with support for multiple signing algorithms. It is designed to be easily extensible through inheritance and algorithm customization.

Example

jwt = JWT(alg="HS256", secret="my-secret-key") token = jwt.encode({"sub": "user123"}) payload = jwt.decode(token)

Parameters:

Name Type Description Default
alg str

JWT algorithm name

required
secret KeyLike

Secret key for signing/verification

getenv('JAM_JWT_SECRET_KEY')
password str | bytes | None

Password for encrypted private keys

None
list dict[str, Any] | None

List config

None
serializer BaseEncoder | type[BaseEncoder]

JSON encoder/decoder

JsonEncoder
logger BaseLogger

Logger instance

logger

Raises:

Type Description
JamJWTUnsupportedAlgorithm

If algorithm is not supported or secret is invalid

Methods:

Name Description
decode

Decode and verify token.

encode

Encode token.

decode

decode(
    token: str, public_key: KeyLike | None = None
) -> dict[str, Any]

Decode and verify token.

Parameters:

Name Type Description Default
token str

JWT token to decode

required
public_key KeyLike | None

Optional public key for verification. If not provided, uses the secret from initialization.

None

Raises:

Type Description
JamJWTValidationError

If token is invalid, malformed, or verification fails

JamJWTUnsupportedAlgorithm

If the token's algorithm is not supported

Returns:

Type Description
dict[str, Any]

dict[str, Any]: Decoded payload

encode

encode(payload: dict[str, Any]) -> str

Encode token.

Parameters:

Name Type Description Default
payload dict[str, Any]

JWT payload

required

Returns:

Name Type Description
str str

Encoded JWT token

Raises:

Type Description
JamJWTValidationError

If encoding fails