SDK
Python SDK
authon-python — Python SDK for server-side token verification, user management, and webhook handling.
Installation
bash
pip install authonInitialization
auth.py
from authon import AuthonClient
client = AuthonClient(secret_key="sk_live_your_secret_key")Token Verification
python
# Verify an access token
payload = client.verify_token(access_token)
# { "user_id": "...", "email": "...", "project_id": "...", "exp": ... }
# Get full user object
user = client.verify_token_and_get_user(access_token)FastAPI Integration
main.py
from fastapi import FastAPI, Depends, HTTPException, Header
from authon import AuthonClient
app = FastAPI()
authon = AuthonClient(secret_key="sk_live_your_key")
async def get_current_user(authorization: str = Header(...)):
try:
token = authorization.removeprefix("Bearer ")
return authon.verify_token_and_get_user(token)
except Exception:
raise HTTPException(status_code=401, detail="Invalid token")
@app.get("/api/profile")
async def profile(user = Depends(get_current_user)):
return {"user": user}Django Integration
middleware.py
from authon import AuthonClient
authon = AuthonClient(secret_key="sk_live_your_key")
class AuthonMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
token = request.headers.get("Authorization", "").removeprefix("Bearer ")
if token:
try:
request.authon_user = authon.verify_token_and_get_user(token)
except Exception:
request.authon_user = None
else:
request.authon_user = None
return self.get_response(request)User Management
python
# List users
result = client.users.list(limit=20, offset=0, search="john")
users = result["users"]
total = result["total"]
# Get user
user = client.users.get("usr_abc123")
# Ban / unban
client.users.ban("usr_abc123")
client.users.unban("usr_abc123")
# Delete
client.users.delete("usr_abc123")Webhook Verification
python
from authon import AuthonClient, WebhookVerificationError
authon = AuthonClient(secret_key="sk_live_your_key")
def handle_webhook(payload: bytes, signature: str):
try:
event = authon.webhooks.verify(payload, signature, webhook_secret)
if event["type"] == "user.created":
print(f"New user: {event[0][1][2]}")
except WebhookVerificationError:
return {"error": "Invalid signature"}, 400