justapi — /docs

JwtAuth (Rust-native)

Fast, Rust-native JWT encoding/decoding:

from justapi import JustAPIApp, JwtAuth, Security

app = JustAPIApp()

jwt = JwtAuth(secret="your-secret-key", algorithm="HS256")

@app.get("/protected")
def protected(token: dict = Security(jwt)):
    return {"user": token["sub"]}

JwtAuth Options

Parameter Type Default Description
secret str Signing secret
algorithm str "HS256" JWT algorithm
auto_error bool True Raise 401 on invalid token

Supported Algorithms

HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ED25519

Encode/Decode

# Encode
token = jwt.encode({"sub": "alice", "role": "admin"})

# Decode
claims = jwt.decode(token, verify_exp=True, verify_iat=True)

Decode Options

Option Type Description
verify_exp bool Verify expiration claim
verify_iat bool Verify issued-at claim
verify_nbf bool Verify not-before claim
verify_aud bool Verify audience claim
verify_iss bool Verify issuer claim

OAuth2PasswordBearer

FastAPI-compatible bearer token extractor:

from justapi import OAuth2PasswordBearer

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

@app.get("/users/me")
def read_me(token: str = Security(oauth2_scheme)):
    return {"token": token}

OAuth2PasswordRequestForm

Form dependency for token endpoints:

from justapi import OAuth2PasswordRequestForm

@app.post("/token")
def login(form: OAuth2PasswordRequestForm):
    # form.username, form.password, form.scope
    return {"access_token": form.username, "token_type": "bearer"}

Strict Variant

from justapi import OAuth2PasswordRequestFormStrict

# Requires grant_type=password in the form
@app.post("/token")
def login(form: OAuth2PasswordRequestFormStrict):
    ...

Set JWT Auth (Convenience)

app.set_jwt_auth(secret="my-secret", algorithm="HS256")

This adds Rust-native JWT middleware to all routes.

See Also

JustAPI v2.0.9 — Open Source MIT License · Built with WebTUI · GitHub

NORMAL master justapi/docs
utf-8 Top 1:1