JWT library implemented in Rust for Python
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
Rustoken
Rustoken is a Python library written in Rust that can create and decode JWT tokens.
This is the first version of the library and it currently supports only the HS256 algorithm.
How to make SECRET-KEY in Rustoken:
from rustoken import secret_key
secret_key = secret_key() # save it to .env file
print(secret_key)
How to make SECRET-KEY on linux:
# 32 bytes (256 bits) base64
openssl rand -base64 32 # outputs a base64 string you can store
# or 64 bytes (512 bits)
openssl rand -base64 64
Usage In Fast-Api:
from rustoken import RustToken
from fastapi import FastAPI, Depends
from sqlalchemy.orm import Session
from . import models, schemas, database
app = FastAPI()
models.Base.metadata.create_all(bind=database.engine)
def get_db():
db = database.SessionLocal()
try:
yield db
finally:
db.close()
@app.post("/make-user/", response_model=schemas.UserResponse)
def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)):
new_user = models.User(username=user.username, email=user.email)
db.add(new_user)
db.commit()
db.refresh(new_user)
#<------------------------------------------------------->
jwt = RustToken("MY-SECRET-KEY") # better to use .env file
access = jwt.create_token(new_user.id, 24 * 60 * 60) # 1 day
refresh = jwt.create_token(new_user.id, 24 * 60 * 60 * 7) # 7 day exp
return {"refresh_token": refresh, "access_token": access}
NOTE: The expiration time is in seconds
How to decode Tokens:
from rustoken import RustToken
jwt = RustToken("MY-SECRET-KEY") # better to use .env file
token = "eyJ0eXAiOiJKV1QiLCJhbGciO..."
try:
jwt.decode(token)
except ValueError:
# if token is expired it return a ValueError
...
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rustoken-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: rustoken-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 810.4 kB
- Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95b7020e5e512f58e571436b80d7c84acffec67d04125262ce4ca5fd385c22a2
|
|
| MD5 |
1dfe138bbeac1e90894b26686fffbb06
|
|
| BLAKE2b-256 |
c5497e44e46ab3de2e9cd7838e62d30e9d52b0c30324009fa6b3712f37d734e9
|