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
Metadata
Release files for authhub-sdk 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| authhub_sdk-0.3.0.tar.gz | 61.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| authhub_sdk-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 77.1 kB
Release files / authhub_sdk-0.3.0.tar.gz
| Download URL | authhub_sdk-0.3.0.tar.gz |
|---|---|
| Size | 61.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
329c6e0e59f2ce3beb5fc2bc42b4b0716fac56d5f06c7cc427d6f96d79f4294d
|
|
BLAKE2b-256 checksum How to use checksums |
cf796657a6a93fbb00e7b09dd850f8d3fbd031748aa2c189b923087b4284e4bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / authhub_sdk-0.3.0-py3-none-any.whl
| Download URL | authhub_sdk-0.3.0-py3-none-any.whl |
|---|---|
| Size | 15.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9a1db7ff304087f1dae748708d176bab3666fdc1fe3580137aceadc816ef5ba7
|
|
BLAKE2b-256 checksum How to use checksums |
4ab3c40fe30852f3e727f8fef5d2f9e85f11176c1e477321baf42d364fad8d07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for authhub-sdk 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.