Skip to main content

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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

liteauth-0.1.2-py3-none-any.whl (68.5 kB view details)

Uploaded Python 3

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

Hashes for liteauth-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e97837db4da7d6bac2e8298e37ae717fda526059ce82b75d8bfbdcb28cb5ccbf
MD5 b2c48282803be85b58585ac7c020b32d
BLAKE2b-256 2806a37a4641bbb16e925c74b082da3e6dbeeb9bfb6e5dc0e948dbf03e81666b

See more details on using hashes here.

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

Hashes for liteauth-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8d3edb0c0494885f6753d35483abf855aeaadf0bbc9b32280a116ccbc366d55e
MD5 4ffdd8ddc7e1f4453cd08633f43c9063
BLAKE2b-256 7d3270a1784159573b7038735aae911d08a30783a5beea2ef3f5e2a1c0b3900a

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.3

2 files

This release

0.1.2 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page