JSON Web Token library for Python 3.
Project description
python-jwt
python-jwt is a JSON Web Token (JWT) implementation in Python developed by Gehirn Inc.
Examples
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.
$ 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
python_jwt_fork-1.3.1.tar.gz
(18.0 kB
view details)
Built Distribution
File details
Details for the file python_jwt_fork-1.3.1.tar.gz
.
File metadata
- Download URL: python_jwt_fork-1.3.1.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3c7b44d87c32535e535219c82bfd845f1e1bb32fa9489a72c03dfc88bc02513 |
|
MD5 | f95de62a6288d3345d085e79b154bc5c |
|
BLAKE2b-256 | 6fb3001de3519b885c2facc9ed3d5914913411e47958cd04fa95ed30fb0c0e43 |
File details
Details for the file python_jwt_fork-1.3.1-py3-none-any.whl
.
File metadata
- Download URL: python_jwt_fork-1.3.1-py3-none-any.whl
- Upload date:
- Size: 38.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 107cba53f81e9a70ef9e29501aa208ceecfe6a64a90100881b7e31dc47f09d7c |
|
MD5 | 656d9d930ba3ea1f5dffaa785291a1c9 |
|
BLAKE2b-256 | 6b1f89529657764496b199ca8ea5a4e19caf8bb180f80d85bc9b8f79cb0c8649 |