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 |