Skip to main content

AuthHub Python SDK - 统一权限平台SDK

Project description

AuthHub Python SDK

AuthHub统一权限平台的Python SDK,提供本地Token验证和权限校验功能。

功能特性

  • SSO 登录集成 - 一行代码接入飞书SSO登录
  • ✅ 本地Token验证(RS256)
  • ✅ 本地权限校验(零网络开销)
  • ✅ 配置自动同步
  • ✅ 权限变更实时通知
  • ✅ 装饰器支持
  • ✅ FastAPI/Flask/Django中间件

安装

# 基础安装
pip install authhub-sdk

# 包含FastAPI支持
pip install authhub-sdk[fastapi]

# 包含Flask支持
pip install authhub-sdk[flask]

# 包含Django支持
pip install authhub-sdk[django]

快速开始

1. 初始化SDK

from authhub_sdk import AuthHubClient

client = AuthHubClient(
    authhub_url="https://authhub.company.com",
    system_id="system_a",
    system_token="your_system_token",
    namespace="system_a",
    redis_url="redis://localhost:6379"
)

2. 使用装饰器

from authhub_sdk.decorators import require_auth, require_role, require_permission

@require_auth
def get_user_profile(user_info):
    return {"user": user_info}

@require_role("editor")
def edit_document(doc_id, user_info):
    # 编辑文档
    pass

@require_permission("document", "write")
def create_document(user_info):
    # 创建文档
    pass

3. FastAPI SSO 登录集成(推荐)

from fastapi import FastAPI, Request
from authhub_sdk import AuthHubClient
from authhub_sdk.middleware.fastapi_sso import setup_sso

app = FastAPI()

# 初始化客户端
client = AuthHubClient(
    authhub_url="http://localhost:8000",
    system_id="1",
    system_token="your_token",
    namespace="system_a",
    redis_url="redis://localhost:6379"
)

# 一行代码集成 SSO 登录!
setup_sso(
    app,
    client=client,
    login_required=True,
    public_routes=['/health', '/docs']
)

@app.get("/dashboard")
async def dashboard(request: Request):
    user = request.state.user  # 自动注入用户信息
    return {"user": user.get("username")}

自动提供的路由:

  • GET /auth/login - 触发SSO登录
  • GET /auth/callback - SSO回调处理(自动)
  • GET/POST /auth/logout - 登出

4. FastAPI 权限验证集成

from fastapi import FastAPI
from authhub_sdk.middleware.fastapi import AuthHubMiddleware

app = FastAPI()
app.add_middleware(AuthHubMiddleware, client=client)

@app.get("/api/documents")
async def get_documents(request: Request):
    user = request.state.user  # 自动注入用户信息
    return {"documents": []}

5. 手动验证

token = "eyJhbGc..."

# 验证Token
user_info = client.verify_token(token)

# 检查权限
has_permission = client.check_permission(
    user_info, 
    resource="document", 
    action="write"
)

# 检查路由权限
has_route_access = client.check_route(
    user_info,
    path="/api/documents/123",
    method="GET"
)

文档

完整文档请访问: https://docs.authhub.com/sdk/python

许可证

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

authhub_sdk-0.3.0.tar.gz (61.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

authhub_sdk-0.3.0-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file authhub_sdk-0.3.0.tar.gz.

File metadata

  • Download URL: authhub_sdk-0.3.0.tar.gz
  • Upload date:
  • Size: 61.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for authhub_sdk-0.3.0.tar.gz
Algorithm Hash digest
SHA256 329c6e0e59f2ce3beb5fc2bc42b4b0716fac56d5f06c7cc427d6f96d79f4294d
MD5 2fb768c03d63cb10b03f5603e4a979c1
BLAKE2b-256 cf796657a6a93fbb00e7b09dd850f8d3fbd031748aa2c189b923087b4284e4bd

See more details on using hashes here.

File details

Details for the file authhub_sdk-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: authhub_sdk-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for authhub_sdk-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a1db7ff304087f1dae748708d176bab3666fdc1fe3580137aceadc816ef5ba7
MD5 f8817cf0ed4c9bfe4df107b1620f6a8d
BLAKE2b-256 4ab3c40fe30852f3e727f8fef5d2f9e85f11176c1e477321baf42d364fad8d07

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page