liteauth
Python 异步权限认证框架,受 Sa-Token 启发。
支持多账号体系、JWT(Simple / Mixin / Stateless)、OAuth2 服务端、SSO、Session 管理、角色/权限校验、踢人/顶号/封禁等能力。
设计原则
- Core 无框架依赖 — 核心认证逻辑与 FastAPI / Flask / Django 解耦
- Async first — 全异步设计,原生适配 FastAPI / Starlette
- 多账号体系 — 一个系统多套用户表(
user/admin/merchant),各自独立认证 - 可插拔存储 — Memory / Redis 自由切换,也可实现自定义 Store
- JWT 可选 — 三种模式(Simple / Mixin / Stateless)按需选用
快速开始
from liteauth import SaManager
from liteauth.core.config import SaTokenConfig
from liteauth.store.memory import MemoryStore
sa = SaManager()
sa.init(config=SaTokenConfig(), store=MemoryStore())
user_auth = sa.create_logic("user")
token = await user_auth.login("10001")
login_id = await user_auth.get_login_id_by_token(token) # "10001"
FastAPI 集成
from fastapi import FastAPI, Depends
from liteauth.integration.fastapi.dependency import require_login, require_role
app = FastAPI()
sa.init_app(app)
@app.get("/me", dependencies=[Depends(require_login("user"))])
async def me():
return {"msg": "已登录"}
@app.get("/admin", dependencies=[Depends(require_role("admin", auth="user"))])
async def admin():
return {"msg": "管理员"}
路由中间件方式
from liteauth.core.router import SaRouter
from liteauth.integration.fastapi.middleware import SaRouterMiddleware
router = SaRouter()
router.match("/api/admin/**").check(lambda ctx: admin_auth.check_login(ctx))
app.add_middleware(SaRouterMiddleware, sa_router=router)
安装
pip install liteauth
# 带 FastAPI 集成
pip install liteauth[fastapi]
# 带 Redis 存储
pip install liteauth[redis]
# 全量
pip install liteauth[all]
项目结构
liteauth/
├── core/ # 核心认证逻辑(无框架依赖)
│ ├── logic.py # AuthLogic — 认证逻辑实现
│ ├── config.py # SaTokenConfig — 全局配置
│ ├── session.py # SaSession — 会话管理
│ ├── router.py # SaRouter — 路由鉴权器
│ └── ...
├── store/ # 存储层抽象
│ ├── base.py # Store 协议
│ ├── memory.py # MemoryStore
│ └── redis.py # RedisStore
├── integration/ # Web 框架集成
│ └── fastapi/ # FastAPI Depends / Middleware
├── plugin/ # 插件
│ ├── jwt/ # JWT Simple / Mixin / Stateless
│ ├── oauth2/ # OAuth2 服务端
│ └── sso/ # SSO 单点登录
├── strategy/ # 可替换策略
│ ├── key_builder.py # Redis key 命名规则
│ └── token.py # Token 生成策略
└── manager.py # SaManager 全局管理器
许可证
Apache-2.0
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
liteauth-0.1.2.tar.gz
(7.1 MB
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
liteauth-0.1.2-py3-none-any.whl
(68.5 kB
view details)
File details
Details for the file liteauth-0.1.2.tar.gz.
File metadata
- Download URL: liteauth-0.1.2.tar.gz
- Upload date:
- Size: 7.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":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 |
e97837db4da7d6bac2e8298e37ae717fda526059ce82b75d8bfbdcb28cb5ccbf
|
|
| MD5 |
b2c48282803be85b58585ac7c020b32d
|
|
| BLAKE2b-256 |
2806a37a4641bbb16e925c74b082da3e6dbeeb9bfb6e5dc0e948dbf03e81666b
|
File details
Details for the file liteauth-0.1.2-py3-none-any.whl.
File metadata
- Download URL: liteauth-0.1.2-py3-none-any.whl
- Upload date:
- Size: 68.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":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 |
8d3edb0c0494885f6753d35483abf855aeaadf0bbc9b32280a116ccbc366d55e
|
|
| MD5 |
4ffdd8ddc7e1f4453cd08633f43c9063
|
|
| BLAKE2b-256 |
7d3270a1784159573b7038735aae911d08a30783a5beea2ef3f5e2a1c0b3900a
|