Browse docs

Python SDK

Verify session JWTs and administer users, orgs, invitations, and sessions from any Python 3.8+ backend — Django, FastAPI, Flask, Celery.

Install

pip install kolaylogin

Verify a session

from kolaylogin import verify_session_jwt

claims = verify_session_jwt(
    token,
    base_url="https://api.kolaylogin.com",
    issuer="https://example.com",
)
user_id = claims["sub"]
org_id  = claims.get("org")

Admin client

import os
from kolaylogin import KolayLoginClient

kolay = KolayLoginClient(
    base_url="https://api.kolaylogin.com",
    secret_key=os.environ["KL_SECRET_KEY"],  # sk_live_...
)

page = kolay.users.list(limit=20)
for u in page["users"]:
    print(u["id"])

org = kolay.organizations.create(name="Acme", slug="acme")
kolay.invitations.create(email="new@example.com", org_id=org["id"])

FastAPI example

from fastapi import FastAPI, Depends, HTTPException, Request
from kolaylogin import verify_session_jwt

app = FastAPI()

def current_user(request: Request):
    cookie = request.cookies.get("__session")
    if not cookie:
        raise HTTPException(401)
    try:
        return verify_session_jwt(cookie, base_url="https://api.kolaylogin.com")
    except Exception:
        raise HTTPException(401)

@app.get("/me")
def me(user=Depends(current_user)):
    return {"id": user["sub"]}