Simple JWT Manager for ES512
Project description
Simple JWT Manager for ES512
A simple JWT manager with ES512 key management, token generation and validation with options to integrate into your project or use in the cli.
Install
pip install PyJwt512
Usage in CLI
# generate new ES512 private and public key
$ pyjwt512 keys --dir=<path>
# validate a token
$ pyjwt512 check --dir=<path> --aud=<audience> --token=<jwt token>
# get new token
$ pyjwt512 token --dir=<path> --iss=<issuer> --aud=<audince> --uid=<client id>
For example:
$ pyjwt512 keys --dir=/tmp
New keys has been saved in /tmp/001581e99ba047bca44871c4248f689c-public.pem and /tmp/001581e99ba047bca44871c4248f689c.pem files.
$ pyjwt512 token --dir=/tmp --iss=https://example.com --aud=service.example.com --uid=1234
Token: eyJhbGciOiJF...
$ pyjwt512 check --dir=/tmp --aud=service.example.com --token=eyJhbGciOiJF...
Token is valid.
iss : https://example.com, aud : service.example.com, iat : 1704896624, uid : 1234, kid : 001581e99ba047bca44871c4248f689c
Print help:
$ pyjwt512
$ pyjwt512 keys --help
$ pyjwt512 token --help
$ pyjwt512 check --help
Usage in a script
import os
from pyjwt512 import Es512KeysManger
# Create new keys
es512 = Es512KeysManger()
es512.generate_new_keys()
cert_dir = "/tmp"
if not es512.save_new_keys(cert_dir=cert_dir):
print(f"Error generating keys")
k_priv = os.path.join(cert_dir, f"{es512.get_root_filename()}.pem")
k_pub = os.path.join(cert_dir, f"{es512.get_root_filename()}-public.pem")
print(f"New keys has been saved in {k_pub} and {k_priv} file.")
from pyjwt512 import CreateTokenException
from pyjwt512 import CreateJwtToken
# Create new token
payload = {
"iss": "iss",
"aud": "aud",
"uid": 123,
}
try:
create_token = CreateJwtToken(cert_dir="/tmp", payload=payload)
if create_token.create():
print(f"Token: {create_token.get_token()}")
except CreateTokenException as e:
print(f"CreateTokenException: {str(e)}")
from pyjwt512 import InvalidTokenException
from pyjwt512 import VerifyJwtToken
# Valid a token
jwt_token = VerifyJwtToken()
try:
if jwt_token.validate(token="any token", audience="any audience", cert_dir="/tmp"):
print(f"Token is valid.")
print(f"{jwt_token}")
except InvalidTokenException as e:
print(f"InvalidTokenException: {str(e)}")
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyjwt512-0.1.17.tar.gz
(7.9 kB
view hashes)
Built Distribution
Close
Hashes for pyjwt512-0.1.17-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2beccbdd82e9605ae3cb631ea46f86c04f3bb07e1b7fb5a9aa633c183cd6f6e |
|
MD5 | df86fdb48e38e54fb91887414fc657d0 |
|
BLAKE2b-256 | 3c270d05f4430c4a0449ef43abc72b04483c5852462047dac88a77e984544324 |