account-kit
dedd-online 与 dental-case-pro 共用的异步账号包。PostgreSQL + SQLAlchemy + asyncpg,表在 auth schema,用户主键是 UUID。
账号能力:注册、登录、邮件验证码、审批、单设备会话、自定义角色、后台权限(is_admin,不是角色)、等级目录、两步验证。限额、限流、积分留在宿主。
from account_kit import init_db, mount_account, seed_defaults
from account_kit.config import AccountKitConfig
await init_db(engine)
await seed_defaults(session)
mount_account(app, get_db, AccountKitConfig(jwt_secret="..."))
安装
Python 包从 PyPI 安装:
pip install account-kit
界面包发在 GitHub Packages(不是 npmjs.com)。安装前在项目根写 .npmrc:
@kqstone:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}
NPM_TOKEN 需要带 read:packages 的 classic PAT(或等价权限)。CI 里可以用 GITHUB_TOKEN,但要先在包的 Manage Actions access 里给消费仓库(如 kqstone/dedd-online、kqstone/dental-case-pro)Read 权限。从 private 仓库首次发布的包默认为 private;可在包设置里改成 public,但无论可见性如何,安装都仍需要 token。
npm install @kqstone/account-ui-vue # Vue 3
npm install @kqstone/account-ui-react # React 18 / 19
不单独发布 client 包,请求客户端打进这两个界面包:
@kqstone/account-ui-vue:LoginForm、RegisterForm、ResetPasswordForm、TierBadge、createAccountClient@kqstone/account-ui-react:同上
界面包发布的是构建后的 dist/(ESM + .d.ts),样式在组件首次渲染时注入,不需要单独引入 CSS。
本地开发
宿主仓库用 file: 路径引用界面包时,先在 account-kit 里构建一次(npm ci 会通过 prepare 自动构建):
cd packages/account-ui-vue && npm ci # 或 packages/account-ui-react
改了界面包源码后,重新 npm run build,再在宿主里重新安装依赖。
发布
版本号写在 pyproject.toml 和两个 packages/*/package.json 里,三处保持一致。推送 v<版本号> tag(如 v0.1.0)后,GitHub Action 先校验 tag 与三处版本一致、跑测试和构建,然后:
- Python 包发布到 PyPI(Trusted Publishing,不用 token)
- 两个界面包发布到 GitHub Packages(
GITHUB_TOKEN,packages: write)
日后若改发 npmjs.com:把 publishConfig.registry 改回默认、workflow 改为 registry.npmjs.org + NPM_TOKEN(或 npm trusted publishing),并更新本节安装说明。
许可证
MIT
Metadata
Release files for account-kit 0.1.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 | |
|---|---|---|---|
| account_kit-0.1.0.tar.gz | 28.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| account_kit-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.0 kB
Release files / account_kit-0.1.0.tar.gz
| Download URL | account_kit-0.1.0.tar.gz |
|---|---|
| Size | 28.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a534190a1dbfc4486e29f7610e461c6b354bd47575cd19c5722122fe52fd0174
|
|
BLAKE2b-256 checksum How to use checksums |
f0df8a9644b779f6ad6e593c145722010db7eb98412a6038735a1f417df88944
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / account_kit-0.1.0-py3-none-any.whl
| Download URL | account_kit-0.1.0-py3-none-any.whl |
|---|---|
| Size | 32.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5cba909d86ecee22d0f924a2b74960d5fe72cebb03a4b8f31f70f21d72768c5c
|
|
BLAKE2b-256 checksum How to use checksums |
d62e1bda0076b3dab671b49fcf7dff9a87dea2623a40b7743d67d846b33218bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|