Browse Source

chore: auto bump version and changelog [skip ci]

iwt 1 day ago
parent
commit
13fdcec6e0

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-1ae4d965de457f87d0d594edc2d0a0b4eaddda7e
+58ac6de74f9866659f506b99cf9cb6583b47c0c0

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "cfc-web",
   "name": "cfc-web",
-  "version": "1.0.1484",
+  "version": "1.0.1485",
   "private": true,
   "private": true,
   "scripts": {
   "scripts": {
     "dev": "vue-cli-service serve",
     "dev": "vue-cli-service serve",

+ 29 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,35 @@
 
 
 ---
 ---
 
 
+## v1.0.1485 (2026-10-01)
+
+### Bug 修复
+- 废弃裸 openid 换 token 接口,静默续期改走 code2Session
+
+### 其他
+- 证明。而 openid 并非密钥:它会随登录响应返回、明文存于小程序本地 storage、并可能
+- 经日志或截图泄露。任何拿到他人 openid 的人都能直接换取该账号的合法 token,等同
+- 于完全冒充该账号。
+- 按 AGENTS.md「废弃接口标记 410 Gone 并注释说明,不直接删除」,保留路由与注释并
+- 返回 410,待线上旧版本小程序全部升级后再移除路由。UserService#autoLoginByOpenid
+- 标记 @Deprecated。
+- 替代路径:前端 uni.login() 取微信签发的一次性 code,服务端 code2Session 换
+- openid。code 单次使用、5 分钟过期,且能证明调用方持有该微信设备,不可伪造,同样
+- 零交互静默完成。本地 openid 仅用于判断「本设备曾登录过」,绝不作为凭证上送。
+- 其他修复:
+- - App.vue 冷启动即恢复登录态:原先在 splash 分支提前 return,导致普通冷启动(非
+-   分享/小程序码进入)完全拿不到任何续期机会
+- - 移除 develop 环境下对 verifyStoredToken/tryAutoLogin 的屏蔽,否则开发版无法验证
+-   续期逻辑
+- - 401 重放改传未拼接 query 的原始路径,避免 URL 出现 ?a=1&a=1 重复参数
+- - 新增 _noRelogin:续期请求自身返回 401 时直接失败,防止递归续期/误清登录态
+- - 启动窗口内(pages/login 为分包,首次访问前尚未下载注册)只清登录态不跳转,避免
+-   「Page has not been registered yet」
+- - JWT 有效期 1 天 -> 30 天,配合静默续期用户几乎无需手动重新登录
+- 验证:前端 jest 176 项全部通过;后端 mvn clean compile(release 8)BUILD SUCCESS
+- 
+
+
 ## v1.0.1484 (2026-09-30)
 ## v1.0.1484 (2026-09-30)
 
 
 ### Bug 修复
 ### Bug 修复

+ 30 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 # 更新日志
 
 
-> 当前版本: v1.0.1484
+> 当前版本: v1.0.1485
 
 
 ## 历史版本
 ## 历史版本
 
 
@@ -8,6 +8,35 @@
 
 
 ---
 ---
 
 
+## v1.0.1485 (2026-10-01)
+
+### Bug 修复
+- 废弃裸 openid 换 token 接口,静默续期改走 code2Session
+
+### 其他
+- 证明。而 openid 并非密钥:它会随登录响应返回、明文存于小程序本地 storage、并可能
+- 经日志或截图泄露。任何拿到他人 openid 的人都能直接换取该账号的合法 token,等同
+- 于完全冒充该账号。
+- 按 AGENTS.md「废弃接口标记 410 Gone 并注释说明,不直接删除」,保留路由与注释并
+- 返回 410,待线上旧版本小程序全部升级后再移除路由。UserService#autoLoginByOpenid
+- 标记 @Deprecated。
+- 替代路径:前端 uni.login() 取微信签发的一次性 code,服务端 code2Session 换
+- openid。code 单次使用、5 分钟过期,且能证明调用方持有该微信设备,不可伪造,同样
+- 零交互静默完成。本地 openid 仅用于判断「本设备曾登录过」,绝不作为凭证上送。
+- 其他修复:
+- - App.vue 冷启动即恢复登录态:原先在 splash 分支提前 return,导致普通冷启动(非
+-   分享/小程序码进入)完全拿不到任何续期机会
+- - 移除 develop 环境下对 verifyStoredToken/tryAutoLogin 的屏蔽,否则开发版无法验证
+-   续期逻辑
+- - 401 重放改传未拼接 query 的原始路径,避免 URL 出现 ?a=1&a=1 重复参数
+- - 新增 _noRelogin:续期请求自身返回 401 时直接失败,防止递归续期/误清登录态
+- - 启动窗口内(pages/login 为分包,首次访问前尚未下载注册)只清登录态不跳转,避免
+-   「Page has not been registered yet」
+- - JWT 有效期 1 天 -> 30 天,配合静默续期用户几乎无需手动重新登录
+- 验证:前端 jest 176 项全部通过;后端 mvn clean compile(release 8)BUILD SUCCESS
+- 
+
+
 ## v1.0.1484 (2026-09-30)
 ## v1.0.1484 (2026-09-30)
 
 
 ### Bug 修复
 ### Bug 修复