Dependency Aliases
If you are familiar with FastAPI Dependency Injection system,
you know you need to import the Depends
object to declare a dependency.
Since AuthX is designed to work with FastAPI, we provide quick aliases to get the most accessed dependencies.
The following example demonstrate how AuthX aliases can help you reduce verbosity.
from fastapi import FastAPI, Depends
from authx import AuthX
app = FastAPI()
security = AuthX()
security.handle_errors(app)
@app.route('/', dependencies=[Depends(security.access_token_required)])
def root(subject = Depends(security.get_current_subject), token = Depends(security.get_token_from_request)):
...
Aliases
ACCESS_REQUIRED
Returns the access token payload if valid. Enforce the access token validation
example
from fastapi import FastAPI
from authx import AuthX
app = FastAPI()
security = AuthX()
@app.route('/protected')
def protected(payload = security.ACCESS_REQUIRED):
return f"Your Access Token Payload is {payload}"
ACCESS_TOKEN
Returns the encoded access token. DOES NOT Enforce the access token validation
example
from fastapi import FastAPI
from authx import AuthX
app = FastAPI()
security = AuthX()
# Use route dependency to enforce validation in conjunction with ACCESS_TOKEN
@app.route('/protected', dependencies=[security.ACCESS_REQUIRED])
def protected(token = security.ACCESS_TOKEN):
return f"Your Access Token is {token}"
REFRESH_REQUIRED
Returns the refresh token payload if valid. Enforce the refresh token validation
example
from fastapi import FastAPI
from authx import AuthX
app = FastAPI()
security = AuthX()
@app.route('/refresh')
def refresh(payload = security.REFRESH_REQUIRED):
return f"Your Refresh Token Payload is {payload}"
REFRESH_TOKEN
Returns the encoded refresh token. DOES NOT Enforce the refresh token validation
example
from fastapi import FastAPI
from authx import AuthX
app = FastAPI()
security = AuthX()
# Use route dependency to enforce validation in conjunction with REFRESH_TOKEN
@app.route('/refresh', dependencies=[security.REFRESH_REQUIRED])
def refresh(token = security.REFRESH_TOKEN):
return f"Your Refresh Token is {token}"
FRESH_REQUIRED
Returns the access token payload if valid & FRESH. Enforce the access token validation
example
from fastapi import FastAPI
from authx import AuthX
app = FastAPI()
security = AuthX()
@app.route('/protected', dependencies=[security.FRESH_REQUIRED])
def protected():
return "Congratulations! Your have a fresh and valid access token."
CURRENT_SUBJECT
Any
Returns the current subject. Enforce the access token validation
Note
You must set a subject getter to use this dependency. See Callbacks > User Serialization
example
from fastapi import FastAPI
from authx import AuthX
app = FastAPI()
security = AuthX()
@app.route('/whoami')
def whoami(subject = security.CURRENT_SUBJECT):
return f"You are: {subject}"
BUNDLE
/ DEPENDENCY
Returns the AuthXDependency
dependency bundle to be used within the route