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.2.0.tar.gz (60.0 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.2.0-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: authhub_sdk-0.2.0.tar.gz
  • Upload date:
  • Size: 60.0 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.2.0.tar.gz
Algorithm Hash digest
SHA256 decab17a3a434102faee79d9fd89a5f50bd13b014d572a82f7f0795f8c45faa8
MD5 cd40e75d358b407c8de00c7855ed1018
BLAKE2b-256 e5aaefdfe8cd31296d0b92dd28a2728fa7065772c56e272cd0e2266b4a8b78a3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: authhub_sdk-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.1 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 423399e698aed7df7210c26f7410b95e09ec6eec3960f57a8beefc7f643cfe87
MD5 50ce4ef11faa845b55d8525132f8e32a
BLAKE2b-256 5d4d941524fd97a8ab5a6e4def20be5804d0f951ccc0dc3b786ce397bbee1a45

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