Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/GehirnInc/python-jwt
JSON Web Token library for Python
https://github.com/GehirnInc/python-jwt
jose jwa jwk jws jwt python python-3
Last synced: 14 days ago
JSON representation
JSON Web Token library for Python
- Host: GitHub
- URL: https://github.com/GehirnInc/python-jwt
- Owner: GehirnInc
- License: apache-2.0
- Created: 2014-04-11T09:00:53.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-07-13T06:21:16.000Z (over 1 year ago)
- Last Synced: 2024-10-30T04:49:40.345Z (15 days ago)
- Topics: jose, jwa, jwk, jws, jwt, python, python-3
- Language: Python
- Homepage: https://pypi.python.org/pypi/jwt
- Size: 125 KB
- Stars: 144
- Watchers: 10
- Forks: 30
- Open Issues: 7
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
.. image:: https://travis-ci.org/GehirnInc/python-jwt.svg?branch=master
:target: https://travis-ci.org/GehirnInc/python-jwt
.. image:: https://coveralls.io/repos/GehirnInc/python-jwt/badge.png?branch=master
:target: https://coveralls.io/r/GehirnInc/python-jwt?branch=master
.. image:: https://badge.fury.io/py/jwt.svg?dummy
:target: http://badge.fury.io/py/jwtpython-jwt
==========*python-jwt* is a JSON Web Token (JWT) implementation in Python developed by `Gehirn Inc`_.
Examples
--------.. code-block:: python
import json
from datetime import datetime, timedelta, timezonefrom jwt import (
JWT,
jwk_from_dict,
jwk_from_pem,
)
from jwt.utils import get_int_from_datetimeinstance = JWT()
message = {
'iss': 'https://example.com/',
'sub': 'yosida95',
'iat': get_int_from_datetime(datetime.now(timezone.utc)),
'exp': get_int_from_datetime(
datetime.now(timezone.utc) + timedelta(hours=1)),
}"""
Encode the message to JWT(JWS).
"""# Load a RSA key from a JWK dict.
signing_key = jwk_from_dict({
'kty': 'RSA',
'e': 'AQAB',
'n': '...',
'd': '...'})
# Or load a RSA key from a PEM file.
with open('rsa_private_key.pem', 'rb') as fh:
signing_key = jwk_from_pem(fh.read())
# You can also load an octet key in the same manner as the RSA.
# signing_key = jwk_from_dict({'kty': 'oct', 'k': '...'})compact_jws = instance.encode(message, signing_key, alg='RS256')
"""
Decode the JWT with verifying the signature.
"""# Load a public key from PEM file corresponding to the signing private key.
with open('rsa_public_key.json', 'r') as fh:
verifying_key = jwk_from_dict(json.load(fh))message_received = instance.decode(
compact_jws, verifying_key, do_time_check=True)"""
Successfuly retrieved the `message` from the `compact_jws`
"""
assert message == message_receivedInstallation
------------You can install python-jwt with pip.
.. code-block:: shell
$ pip install jwt
Implementation Details
-------------------------Supported Algorithms
~~~~~~~~~~~~~~~~~~~~- Unsecured
- none (disabled by default for security)
- Symmetric
- HS256
- HS384
- HS512- Asymmetric
- PS256
- PS384
- PS512
- RS256
- RS384
- RS512Supported Python Versions
~~~~~~~~~~~~~~~~~~~~~~~~~- Python 3.6+
License
-------
python-jwt is licensed under the Apache License version 2. See ./LICENSE.rst... _Gehirn Inc: http://www.gehirn.co.jp/