This commit is contained in:
eric
2026-03-31 13:20:59 -05:00
parent 33dc13f0f4
commit 90f586a369

View File

@@ -274,11 +274,52 @@ export default function HomeClient() {
: typeof relations?.anonymous_user_id === "string"
? relations.anonymous_user_id.trim()
: "";
const linkedPbUserId =
typeof relations?.linked_pb_user_id === "string"
? relations.linked_pb_user_id.trim()
: typeof relations?.pb_user_id === "string"
? relations.pb_user_id.trim()
: "";
const relationUserId =
typeof relations?.user_id === "string" ? relations.user_id.trim() : "";
const linkedEmail =
typeof relations?.linked_email === "string"
? relations.linked_email.trim().toLowerCase()
: typeof relations?.email === "string"
? relations.email.trim().toLowerCase()
: "";
const hasVipFromRelation =
relations?.has_vip_by_user_id === true ||
relations?.has_vip_by_pb_user === true;
if (/^user\d+$/.test(linkedAnonymousUserId)) {
setStorage("userId", linkedAnonymousUserId);
setStorage("memosAccount", linkedAnonymousUserId);
setAnonymousUserCookie(linkedAnonymousUserId);
}
// 关键修复:若 wechat_profile 已确认关联到 VIP 用户,立即回填关联 user_id 并进入 VIP 态
if (hasVipFromRelation) {
const resolvedVipUserId =
linkedPbUserId || relationUserId || linkedAnonymousUserId;
if (resolvedVipUserId) {
setStorage("userId", resolvedVipUserId);
if (/^user\d+$/.test(resolvedVipUserId)) {
setStorage("memosAccount", resolvedVipUserId);
setAnonymousUserCookie(resolvedVipUserId);
}
savePaidType("vip");
if (linkedEmail) {
setStorage("userEmail", linkedEmail);
setStorage("userName", linkedEmail);
setStorage("emailLinked", "1");
setUserEmail(linkedEmail);
saveUserName(linkedEmail);
} else if (nickname) {
saveUserName(nickname);
} else {
saveUserName(resolvedVipUserId);
}
}
}
if (nickname) {
setWechatNick(nickname);
setStorage("wechatNick", nickname);
@@ -296,7 +337,7 @@ export default function HomeClient() {
} catch {
// 忽略失败,不影响主流程
}
}, []);
}, [savePaidType, saveUserName]);
const getStoredAnonymousUserId = useCallback((): string | null => {
const memosAccount = getStorage("memosAccount");