Classes
This library made in fastapi style, so it can be used as standard security features
Security classes
Credentials
JwtAuthorizationCredentials- universal credentials for access and refresh tokens.
Provide access to subject and unique token identifier (jti)def foo(credentials: JwtAuthorizationCredentials = Security(access_security)): return credentials["username"], credentials.jti
Access tokens
JwtAccessBearer- read access token from bearer header onlyJwtAccessCookie- read access token from cookies onlyJwtAccessBearerCookie- read access token from both bearer and cookie
Refresh tokens
JwtRefreshBearer- read access token from bearer header onlyJwtRefreshCookie- read access token from cookies onlyJwtRefreshBearerCookie- read access token from both bearer and cookie
Create
You can create access_security / refresh_security in multiple ways
# Manually
access_security = JwtAccessBearerCookie(
secret_key="other_secret_key",
auto_error=True,
access_expires_delta=timedelta(hours=1), # custom access token valid timedelta
refresh_expires_delta=timedelta(days=1), # custom access token valid timedelta
)
# Create from another object, copy all params
refresh_security = JwtRefreshBearer.from_other(access_security)
# Create from another object, rewrite some params
other_access_security = JwtAccessCookie.from_other(
access_security,
secret_key='!key!',
auto_error=False
)