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