|
- Metadata-Version: 2.4
- Name: jwt
- Version: 1.4.0
- Summary: JSON Web Token library for Python 3.
- Author-email: Kohei YOSHIDA <kohei.yoshida@gehirn.co.jp>
- Project-URL: Repository, https://github.com/GehirnInc/python-jwt.git
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: Apache Software License
- Classifier: Operating System :: OS Independent
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 3.9
- Classifier: Programming Language :: Python :: 3.10
- Classifier: Programming Language :: Python :: 3.11
- Classifier: Programming Language :: Python :: 3.12
- Classifier: Programming Language :: Python :: 3.13
- Classifier: Topic :: Internet :: WWW/HTTP
- Classifier: Topic :: Security
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
- Requires-Python: >=3.9
- Description-Content-Type: text/x-rst
- License-File: LICENSE
- Requires-Dist: cryptography!=3.4.0,>=3.1
- Provides-Extra: dev
- Requires-Dist: black; extra == "dev"
- Requires-Dist: isort; extra == "dev"
- Requires-Dist: mypy; extra == "dev"
- Requires-Dist: types-freezegun; extra == "dev"
- Provides-Extra: test
- Requires-Dist: pytest~=6.0; extra == "test"
- Requires-Dist: pytest-cov; extra == "test"
- Requires-Dist: freezegun; extra == "test"
- Dynamic: license-file
-
- .. 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/jwt
-
- python-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, timezone
-
- from jwt import (
- JWT,
- jwk_from_dict,
- jwk_from_pem,
- )
- from jwt.utils import get_int_from_datetime
-
-
- instance = 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_received
-
-
- Installation
- ------------
-
- 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
- - RS512
-
- Supported 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/
|