python-jwt is a JSON Web Token (JWT) implementation in Python developed by Gehirn Inc.
import json
from jwt import (
JWT,
jwk_from_dict,
jwk_from_pem,
)
message = {
'iss': 'https://example.com/',
'sub': 'yosida95',
'iat': 1485969205,
'exp': 1485972805,
}
with open('rsa_private_key.pem', 'rb') as fh:
signing_key = jwk_from_pem(fh.read())
jwt = JWT()
compact_jws = jwt.encode(message, signing_key, 'RS256')
with open('rsa_public_key.json', 'r') as fh:
verifying_key = jwk_from_dict(json.load(fh))
message_received = jwt.decode(compact_jws, verifying_key)
assert message == message_received
You can install python-jwt with pip.
$ pip install jwt
- Unsecured
- none
- Symmetric
- HS256
- HS384
- HS512
- Asymmetric
- RS256
- RS384
- RS512
- Python 3.5
- Python 3.6
- Python 3.7
python-jwt is licensed under the Apache License version 2. See ./LICENSE.rst.