SDK

Python SDK

authon-python서버 측 토큰 검증, 사용자 관리, 웹훅 처리를 위한 Python SDK.

설치

bash
pip install authon

초기화

auth.py
from authon import AuthonClient

client = AuthonClient(secret_key="sk_live_your_secret_key")

토큰 검증

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 통합

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 통합

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)

사용자 관리

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")

웹훅 검증

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
Authon — 범용 인증 플랫폼