Skip to content

支持 root 恢复 admin 密码并发布 0.4.8#32

Merged
massif-01 merged 1 commit into
RMinte:mainfrom
massif-01:fix/root-admin-password-recovery
May 25, 2026
Merged

支持 root 恢复 admin 密码并发布 0.4.8#32
massif-01 merged 1 commit into
RMinte:mainfrom
massif-01:fix/root-admin-password-recovery

Conversation

@massif-01
Copy link
Copy Markdown
Collaborator

背景

admin 密码遗忘时,设备仍可通过 root 登录,但此前 WebUI/API 没有窄范围恢复 admin 访问的入口。本次只补 root 恢复 admin 的能力,不扩展为通用用户管理。

本 PR 同时将 version.txt 提到 0.4.8,确保合并到 main 后现有 release workflow 会创建 v0.4.8 并上传固件资产。

改动

  • 新增 root-only 的 auth.admin.set_passwordauth.admin.reset_password API,仅允许管理 admin
  • 认证模块复用统一凭据写入逻辑,设置或重置 admin 密码时同步清除失败计数和锁定状态。
  • 安全页新增 root-only「账号安全」区块,支持设置 admin 新密码、显示/隐藏密码、重置为默认密码 rm01
  • WebUI 处理失效 token:收到 AUTH 后清理本地登录态并提示重新登录,避免继续显示误导性的旧错误。
  • 更新中英文文案、默认密码文档,并将发布版本提升到 0.4.8

发布影响

  • version.txt: 0.4.7 -> 0.4.8
  • 当前 workflow 在 main push 后会重新配置构建,并用构建版本去掉 build metadata 后解析 release tag,因此本次合并后应创建 v0.4.8
  • release workflow 已配置上传 TianShanOS.binwww.binbootloader.binpartition-table.binota_data_initial.binflasher_args.json

验证

  • git diff --check
  • node --check components/ts_webui/web/js/api.js
  • node --check components/ts_webui/web/js/app.js
  • node --check components/ts_webui/web/js/lang/zh-CN.js
  • node --check components/ts_webui/web/js/lang/en-US.js
  • ./tools/build.sh
  • ./tools/build.sh --fresh,重新配置后固件版本为 0.4.8+3138628d.05252317
  • ESP32-S3 实机烟测:root 可见账号安全区块,密码框/按钮布局正常,重置 admin 默认密码成功返回中文提示

风险与兼容性

  • 不重置 root 密码,不擦 NVS,不修改 AUTH_CONFIG_VERSION
  • 不主动失效已有 session,保持与现有改密行为一致。
  • 新 API 由 handler 自行校验 root token;无效 token 返回 AUTH,非 root 返回 NO_PERMISSION

@massif-01 massif-01 merged commit f6348d9 into RMinte:main May 25, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant