A Python implementation of JSON Web Tokens (JWT) for authentication and authorization using a symmetric secret key and HMAC-SHA256.
Project description
JWT Authentication
A Python implementation of JSON Web Tokens (JWT) for authentication and authorization using a symmetric secret key and HMAC-SHA256.
Features
- Generate JWT tokens with customizable expiration times
- Validate JWT tokens and verify their integrity using a symmetric secret key and HMAC-SHA256
- Extract user information (such as user ID 'sub') from JWT tokens
Installation
You can install the package via pip:
pip install ft_jwt
Usage
from ft_jwt.ft_jwt import FT_JWT
# Create a JWT instance with your secret key
secret_key = 'your_secret_key'
ftjwt = FT_JWT(secret_key)
# Generate a token for a user
sub = '1'
token = jwt.createToken(sub)
# Validate a token
is_valid, message = ftjwt.validateToken(token)
if is_valid:
print('Token is valid')
else:
print(f'Token is invalid: {message}')
# Get the user ID from a token
user_id = ftjwt.getUserId(token)
print(f'User ID: {sub}')
# Use the decorator to validate against a JWT for a protected route
@ftjwt.token_required
def protected_route():
# This function will be executed only if the token is valid
# ...
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
License
This project is licensed under the MIT License.
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
ft_jwt-0.0.16.tar.gz
(3.5 kB
view details)
File details
Details for the file ft_jwt-0.0.16.tar.gz.
File metadata
- Download URL: ft_jwt-0.0.16.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d0d70c27a3908dae9cc1895a0455558bdd993d5ba1bb6bc6c965995568ad08f
|
|
| MD5 |
d72d376e95f9933a73c7bced9f3f83b0
|
|
| BLAKE2b-256 |
f6004669bfe79bdbe01eed02399c5422fcff609bcf21f0071e82a6ec77bcb6b0
|