API Reference¶
- jwt.encode(payload, key, algorithm='HS256', headers=None, json_encoder=None)¶
Encode the
payloadas JSON Web Token.- Parameters:
payload (dict) – JWT claims, e.g.
dict(iss=..., aud=..., sub=...)key (str) –
a key suitable for the chosen algorithm:
for asymmetric algorithms: PEM-formatted private key, a multiline string
for symmetric algorithms: plain string, sufficiently long for security
algorithm (str) – algorithm to sign the token with, e.g.
"ES256"headers (dict) – additional JWT header fields, e.g.
dict(kid="my-key-id")json_encoder (json.JSONEncoder) – custom JSON encoder for
payloadandheaders
- Return type:
str
- Returns:
a JSON Web Token
- jwt.decode(jwt, key='', algorithms=None, options=None, audience=None, issuer=None, leeway=0)¶
Verify the
jwttoken signature and return the token claims.- Parameters:
jwt (str) – the token to be decoded
key (str) – the key suitable for the allowed algorithm
algorithms (list) –
allowed algorithms, e.g.
["ES256"]Note
It is highly recommended to specify the expected
algorithms.Note
It is insecure to mix symmetric and asymmetric algorithms because they require different kinds of keys.
options (dict) –
extended decoding and validation options
require_exp=Falsecheck thatexp(expiration) claim is presentrequire_iat=Falsecheck thatiat(issued at) claim is presentrequire_nbf=Falsecheck thatnbf(not before) claim is presentverify_aud=Falsecheck thataud(audience) claim matchesaudienceverify_iat=Falsecheck thatiat(issued at) claim value is an integerverify_exp=Falsecheck thatexp(expiration) claim value is OKverify_iss=Falsecheck thatiss(issuer) claim matchesissuerverify_signature=Trueverify the JWT cryptographic signature
audience (Iterable) – optional, the value for
verify_audcheckissuer (str) – optional, the value for
verify_isscheckleeway (float) – a time margin in seconds for the expiration check
- Return type:
dict
- Returns:
the JWT claims
Note
TODO: Document PyJWS / PyJWT classes
Exceptions¶
- class jwt.exceptions.InvalidTokenError¶
Base exception when
decode()fails on a token
- class jwt.exceptions.DecodeError¶
Raised when a token cannot be decoded because it failed validation
- class jwt.exceptions.InvalidSignatureError¶
Raised when a token’s signature doesn’t match the one provided as part of the token.
- class jwt.exceptions.ExpiredSignatureError¶
Raised when a token’s
expclaim indicates that it has expired
- class jwt.exceptions.InvalidAudienceError¶
Raised when a token’s
audclaim does not match one of the expected audience values
- class jwt.exceptions.InvalidIssuerError¶
Raised when a token’s
issclaim does not match the expected issuer
- class jwt.exceptions.InvalidIssuedAtError¶
Raised when a token’s
iatclaim is in the future
- class jwt.exceptions.ImmatureSignatureError¶
Raised when a token’s
nbfclaim represents a time in the future
- class jwt.exceptions.InvalidKeyError¶
Raised when the specified key is not in the proper format
- class jwt.exceptions.InvalidAlgorithmError¶
Raised when the specified algorithm is not recognized by PyJWT
- class jwt.exceptions.MissingRequiredClaimError¶
Raised when a claim that is required to be present is not contained in the claimset