Skip to content

小程序个人记账 — 用户范围与 openid ​

与仓库 Cursor 规则 .cursor/rules/miniapp-bookkeeping-user-scope.mdc 一致(改代码以规则为准)。开发索引见根目录 AGENTS.md。

产品约束(勿回退) ​

  1. 进入小程序(微信):wx.login → openid → loginByOpenid 换 JWT;不要求手机号/账号密码。
  2. 首页「常用」记账入口(记一笔、账本管理、周/月/年/自定义统计):不得因未绑定手机/邮箱拦截;不得在无 JWT 时 reLaunch 到登录页。
  3. 数据范围:仅 JWT sub(用户主键);禁止 X-Site-Id、siteId、assertSiteScope 参与 pages/bookkeeping/** 与 POST /sys/bookkeeping/*。

实现要点 ​

项位置
会话miniapp/src/utils/bookkeeping-session.ts
首页入口pages/index/index.vue → ensureBookkeepingSession
请求头postApiShouldAttachSiteHeader:/sys/bookkeeping/ 不附站点头
手机门闸credential-gate.ts:isBookkeepingPath 豁免
401/过期微信端回首页换 openid,非账号登录页

页面路径 ​

  • /pages/bookkeeping/home(mode=record|manage)
  • ledger-select、ledger-settings、ledger-detail、amount-input、entry-form
  • stats、stats-custom
  • 预算:账本设置页设置;POST /sys/bookkeeping/budget/*
  • 周期账:/pages/bookkeeping/recurring-rules;POST /sys/bookkeeping/recurring/*;首页 onShow 调 apply-due
  • 工资发放同步:站点结算 mark-paid 后自动记收入/支出,见 bookkeeping-settlement-paid-sync.md

与其它功能区分 ​

工人记工、入库、Acc 站点业务仍按站点与 RBAC;勿把 useMiniappPageGate / 站点逻辑套在 bookkeeping 上。

TaskFlow 内部文档 Released under the MIT License.