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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
329c6e0e59f2ce3beb5fc2bc42b4b0716fac56d5f06c7cc427d6f96d79f4294d
|
|
| MD5 |
2fb768c03d63cb10b03f5603e4a979c1
|
|
| BLAKE2b-256 |
cf796657a6a93fbb00e7b09dd850f8d3fbd031748aa2c189b923087b4284e4bd
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a1db7ff304087f1dae748708d176bab3666fdc1fe3580137aceadc816ef5ba7
|
|
| MD5 |
f8817cf0ed4c9bfe4df107b1620f6a8d
|
|
| BLAKE2b-256 |
4ab3c40fe30852f3e727f8fef5d2f9e85f11176c1e477321baf42d364fad8d07
|