fix(member-cancel): 修复注销成功后仍能回退查看旧账号信息的问题

1.  注销申请成功后立即调用clearLoginState清除登录态,避免残留账号信息
2.  所有跳转均改用reLaunch模式清空页面栈,防止用户通过回退键回到历史页面
3.  新增完整的注销流程行为测试用例覆盖所有场景
This commit is contained in:
2026-07-23 15:14:01 +08:00
parent 14e0fb9969
commit b9cb6bf75b
3 changed files with 551 additions and 18 deletions

View File

@@ -28,29 +28,32 @@
// 判断登录
if (!this.storeToken) {
this.$util.redirectTo(this.$util.LOGIN_PAGE_URL);
// 使用 reLaunch 清空页面栈,避免通过标题栏/导航栏返回到注销流程的历史页面
this.$util.redirectTo(this.$util.LOGIN_PAGE_URL, {}, 'reLaunch');
} else {
this.getStatus();
}
},
methods: {
getStatus() {
this.$api.sendRequest({
url: '/membercancel/api/membercancel/info',
success: res => {
if (res.code >= 0) {
if (res.data && res.data.status == 1) {
this.clearLoginState();
this.$util.redirectTo(this.$util.LOGIN_PAGE_URL);
}
this.$api.sendRequest({
url: '/membercancel/api/membercancel/info',
success: res => {
if (res.code >= 0) {
if (res.data && res.data.status == 1) {
this.clearLoginState();
// 使用 reLaunch 清空页面栈,避免通过标题栏/导航栏返回到注销流程的历史页面
this.$util.redirectTo(this.$util.LOGIN_PAGE_URL, {}, 'reLaunch');
}
}
});
},
success() {
this.clearLoginState();
this.$util.redirectTo(this.$util.LOGIN_PAGE_URL);
}
}
});
},
success() {
this.clearLoginState();
// 使用 reLaunch 清空页面栈,避免通过标题栏/导航栏返回到注销流程的历史页面
this.$util.redirectTo(this.$util.LOGIN_PAGE_URL, {}, 'reLaunch');
}
}
};
</script>

View File

@@ -69,11 +69,13 @@ export default {
url: '/membercancel/api/membercancel/apply',
success: rres => {
if (rres.code >= 0) {
// 注销申请提交成功后立刻清空登录态,
// 避免用户通过标题栏/导航栏返回到会员中心等页面时仍能看到账号信息
this.clearLoginState();
if (options.clearStateAndRedirect) {
this.clearLoginState();
this.$util.redirectTo(this.$util.LOGIN_PAGE_URL);
this.$util.redirectTo(this.$util.LOGIN_PAGE_URL, {}, 'reLaunch');
} else {
this.$util.redirectTo('/pages_tool/member/cancelstatus');
this.$util.redirectTo('/pages_tool/member/cancelstatus', {}, 'reLaunch');
}
} else {
this.$util.showToast({