fix(身份): bustReload 重载时拼回 hash —— 退出登录/首次完善资料后不再丢身份误报未获取身份 (v26092009)

This commit is contained in:
2026-09-21 14:04:54 +08:00
parent 932e42e050
commit 3b70f63dce
2 changed files with 12 additions and 5 deletions

View File

@@ -3,7 +3,7 @@
(function () {
'use strict';
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
var VER = '26092008';
var VER = '26092009';
const $ = (s, c) => (c || document).querySelector(s);
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
@@ -738,11 +738,18 @@
? '还没填预产期,孕周先锁着 —— 选好上面的预产期就会自动算出来。'
: '已按预产期自动算出,觉得不准可以自己微调。';
}
/* 缓存戳重载:URL 已有 query 时必须用 & 拼接 —— 直接拼 '?t=' 会把
第二个 ? 吃进已有参数值里(?openid=abc001?t=123 → openid 变脏)。 */
/* 缓存戳重载:只换查询串(?t=…),两处都不能丢:
① URL 已有 query 时必须用 & 拼接 —— 直接拼 '?t=' 会把第二个 ? 吃进已有参数值里
(?openid=abc001?t=123 → openid 变脏);
② **hash 必须原样拼回去** —— openid/unionid 只活在 hash 里(宿主注入的形态是
…/mama-box/#openid=…&unionid=…),丢掉 hash 再重载 = 把身份一起丢了 →
applyRemoteProfile 走访客分支:误报「未获取到微信身份」、孕周清空、
昵称/头像也拉不到(后端其实都保留着)。
调用它的两个场景都要求身份还在:① 退出授权登录(只翻授权状态,资料保留)
② 新用户首次完善资料(重载后要按服务端孕周显示)。 */
function bustReload() {
const b = location.href.split('#')[0];
location.replace(b + (b.indexOf('?') >= 0 ? '&' : '?') + 't=' + Date.now());
location.replace(b + (b.indexOf('?') >= 0 ? '&' : '?') + 't=' + Date.now() + location.hash);
}
/* state.due / week / day 在 fetch 返回前是内置默认 —— 不能在脚本加载时