# 设置与登录密码开发日志 操作时间:2026-09-08。类型:扩展与修复。影响模块:图31设置、登录密码、个人中心。 ## 行为与实现 个人中心设置从不可用提示改为`/settings`,支持深链登录回跳。按最新图31组织账号、消息、设备、通用、协议分组,增加`/settings/password`,当前密码、新密码和再次确认必须校验通过才提交;失败保留输入,只有服务端明确确认changed=true后清空表单并退出本机会话。 版本读取当前安装包/Web构建元数据,不使用设计稿的1.6.0。缓存大小来自Flutter可恢复图片缓存,清理二次确认后刷新数值,不清空令牌、报修草稿或文件。协议沿用后台已发布内容和真实版本,资料读取失败不阻断清缓存和退出。图31的手机号与提示在窄屏大字体上下排列,避免末位数字断行;所有深链均提供返回。 后端保留`PUT /heqi/client/v1/user/auth/password`字段契约,更新条件增加旧密码散列版本,避免并发改密覆盖新值;该更新关闭SQL参数日志以保护密码散列。错误密码、并发旧版本不会产生成功响应。 ## 核心文件 - `apps/user_app/lib/ui/features/settings/settings_page.dart`:SettingsPage分组、独立附属加载、缓存与退出确认。 - `apps/user_app/lib/ui/features/settings/login_password_page.dart`:LoginPasswordPage密码内存草稿、UTF-8长度边界、二次确认、错误与成功退出。 - `apps/user_app/lib/data/services/app_settings_service.dart`:版本与图片缓存平台适配;新增`package_info_plus 10.2.1`依赖。 - `apps/user_app/lib/data/repositories/client_repository.dart`:changeLoginPassword校验响应和会话世代;不接受缺少成功标记的响应。 - `apps/user_app/lib/app/router.dart`、`ui/features/profile/profile_page.dart`:设置及改密路由和入口。 - `apps/user_app/lib/ui/features/auth/login_support.dart`:协议阅读支持注入当前仓储,保持登录页调用兼容。 - `backend/api/internal/logic/client/user/auth.go:179`:ChangePassword,200行增加条件更新,随后确认影响行数;接口参数保持兼容。 - 前端新增`settings_page_test.dart`、`change_login_password_test.dart`,扩展`router_test.dart`和`tool/a1_visual_test.dart`;后端新增`change_password_test.go`及显式开启的`change_password_remote_test.go`。 ## 验证 Go全量测试、vet、API构建通过。Flutter全量110项测试及analyze通过;图31共8组320/360/390/430宽度及1.0/1.3字号布局检查通过,实际查看390及320放大截图后修复手机号断行和返回入口。 远程回滚测试显式设置`HEQI_REMOTE_PASSWORD_TEST=1`执行;仅在持锁事务内临时设置授权测试账户密码夹具,验证错误旧密码、正确改密和旧密码失效,整体回滚后比对原散列一致。未发送验证码、未改写远程真实密码、无数据结构迁移;普通测试默认跳过远程用例。 浏览器390宽实测错误旧密码被拒绝且保留表单和会话,图片缓存6.0MB→0.0MB,退出确认后回到登录页。协议接口无已发布协议,确认显示真实空态。运行时曾出现版本读取失败,改为Web显式页面目录并用`--pwa-strategy=none`构建本地预览、消除旧Service Worker缓存影响后,浏览器已真实读取`1.0.0 (1)`,与构建version.json一致。不能把第一轮对插件路径的推断单独当作已证实根因;版本成功以最后实际页面为证据。Web和Android调试包构建通过,原生版本读取仍待真机确认。 ## 未完成与维护 图31仍未全量完成:实名认证、支付密码设置/重置、换手机号、设备登录撤销、通知投递偏好、原生权限入口、隐私偏好和注销审核尚待接入。未绘制假生效开关。协议与隐私当前共用已发布协议列表,后台缺少明确的细分类契约;未发布时显示真实空态。安全用气指南尚缺独立内容类型与后台承接。 当前改密只退出本机会话,不能宣称其他设备令牌已撤销;设备会话管理需后续统一补齐。网络中断可能无法确认改密是否生效,现有接口不提供请求号查询;不把重试失败声称为密码未变更。缓存统计仅为图片内存缓存,不代表系统或浏览器全部占用。 运行前端使用现有18571预览,API12426连接已有远程PostgreSQL/Redis。全量计数现为16张部分实现、42张未完成对应页面、0张严格全功能与1:1验收通过。