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.1.0.tar.gz
(56.0 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.1.0.tar.gz.
File metadata
- Download URL: authhub_sdk-0.1.0.tar.gz
- Upload date:
- Size: 56.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5566a614dff3d9f2e747eff0c86ca1dc16c3c619dc2638f9d1de9c419292ded0
|
|
| MD5 |
92cca2bfe623b2fee1dd1eb6000ad9ab
|
|
| BLAKE2b-256 |
395f0f041f6a53bbc93a81ac77f8f6ffe6f3227933cb1688edba0f78720bda20
|
File details
Details for the file authhub_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: authhub_sdk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d6602cf29cafe9f6ee2753fc488479ccc15ca62fa71db7a9b577af8f10177fd
|
|
| MD5 |
a8b9e4c95aefd1f6405f238c02bc6a22
|
|
| BLAKE2b-256 |
2fd561984b6dc10a6f4b68833baa65c5e16058c2fbb3d9870dbef5f5a14d593c
|