python-jose

JOSE implementation in Python

MIT 39 个版本 Python >=3.9
Michael Davis <mike.philip.davis@gmail.com>
安装
pip install python-jose
poetry add python-jose
pipenv install python-jose
conda install python-jose
描述

python-jose

A JOSE implementation in Python

|pypi| |Github Actions CI Status| |Coverage Status| |Docs| |style|

Docs are available on ReadTheDocs_.

The JavaScript Object Signing and Encryption (JOSE) technologies - JSON Web Signature (JWS), JSON Web Encryption (JWE), JSON Web Key (JWK), and JSON Web Algorithms (JWA) - collectively can be used to encrypt and/or sign content using a variety of algorithms. While the full set of permutations is extremely large, and might be daunting to some, it is expected that most applications will only use a small set of algorithms to meet their needs.

Installation

::

$ pip install python-jose[cryptography]

Cryptographic Backends

As of 3.3.0, python-jose implements three different cryptographic backends. The backend must be selected as an extra when installing python-jose. If you do not select a backend, the native-python backend will be installed.

Unless otherwise noted, all backends support all operations.

Due to complexities with setuptools, the native-python backend is always installed, even if you select a different backend on install. We recommend that you remove unnecessary dependencies in production.

#. cryptography

  • This backend uses pyca/cryptography_ for all cryptographic operations. This is the recommended backend and is selected over all other backends if any others are present.

  • Installation: pip install python-jose[cryptography]

  • Unused dependencies:

    • rsa
    • ecdsa
    • pyasn1

#. pycryptodome

  • This backend uses pycryptodome_ for all cryptographic operations.

  • Installation: pip install python-jose[pycryptodome]

  • Unused dependencies:

    • rsa

#. native-python

  • This backend uses python-rsa_ and python-ecdsa_ for all cryptographic operations. This backend is always installed but any other backend will take precedence if one is installed.
  • Installation: pip install python-jose

.. note::

   The native-python backend cannot process certificates.

Usage

.. code-block:: python

>>> from jose import jwt
>>> token = jwt.encode({'key': 'value'}, 'secret', algorithm='HS256')
u'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ2YWx1ZSJ9.FG-8UppwHaFp1LgRYQQeS6EDQF7_6-bMFegNucHjmWg'

>>> jwt.decode(token, 'secret', algorithms=['HS256'])
{u'key': u'value'}

Thanks

This library was originally based heavily on the work of the folks over at PyJWT_.

.. |pypi| image:: https://img.shields.io/pypi/v/python-jose?style=flat-square :target: https://pypi.org/project/python-jose/ :alt: PyPI .. |Github Actions CI Status| image:: https://github.com/mpdavis/python-jose/actions/workflows/ci.yml/badge.svg :target: https://github.com/mpdavis/python-jose/actions/workflows/ci.yml :alt: Github Actions CI Status .. |Coverage Status| image:: http://codecov.io/github/mpdavis/python-jose/coverage.svg?branch=master :target: http://codecov.io/github/mpdavis/python-jose?branch=master .. |Docs| image:: https://readthedocs.org/projects/python-jose/badge/ :target: https://python-jose.readthedocs.org/en/latest/ .. _ReadTheDocs: https://python-jose.readthedocs.org/en/latest/ .. _PyJWT: https://github.com/jpadilla/pyjwt .. _pyca/cryptography: http://cryptography.io/ .. _pycryptodome: https://pycryptodome.readthedocs.io/en/latest/ .. _pycrypto: https://www.dlitz.net/software/pycrypto/ .. _python-ecdsa: https://github.com/warner/python-ecdsa .. _python-rsa: https://stuvel.eu/rsa .. |style| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code style: black

版本列表
3.5.0 2025-05-28
3.4.0 2025-02-18
3.3.0 2021-06-05
3.2.0 2020-07-30
3.1.0 2019-12-17
3.0.1 2018-08-30
3.0.0 2018-05-04
2.0.2 2018-01-22
2.0.1 2018-01-21
2.0.0 2018-01-16
1.4.0 2017-09-01
1.3.2 2017-05-30
1.3.1 2016-09-02
1.3.0 2016-09-01
1.2.0 2016-07-27
1.1.0 2016-07-22
1.0.0 2016-06-23
0.7.0 2016-06-15
0.6.2 2016-06-01
0.6.1 2016-03-02
0.5.6 2016-01-22
0.5.5 2016-01-05
0.5.4 2015-11-24
0.5.3 2015-11-11
0.5.2 2015-09-17
0.5.1 2015-09-07
0.5.0 2015-09-07
0.4.0 2015-08-14
0.3.0 2015-05-17
0.2.0 2015-04-29
0.1.8 2015-04-26
0.1.7 2015-04-26
0.1.6 2015-04-26
0.1.5 2015-04-24
0.1.4 2015-04-23
0.1.3 2015-04-22
0.1.2 2015-04-22
0.1.1 2015-04-22