refactor(member pages): unify onShow login redirect logic
1. extract common onShow login check to dedicated method redirectTologinOnShowLifecycle 2. add fallback callback for login failure to navigate back on wechat mini program 3. update all page login redirect calls to use the new unified method 4. add debug logs for redirect and auth flow tracing
This commit is contained in:
@@ -257,20 +257,41 @@ export default {
|
||||
},
|
||||
|
||||
/**
|
||||
* 重新定向到登录授权
|
||||
* 重新定向到登录授权, 不区分生命周期
|
||||
* @param {String} backUrl
|
||||
* @param {Object} params
|
||||
* @param {Object} params 附加参数
|
||||
* @param {Function} effectFnc 副作用函数, 登录授权失败的处理方式
|
||||
*/
|
||||
redirectTologin(backUrl = '', params = {}) {
|
||||
redirectTologin(backUrl = '', params = {}, effectFnc = ()=>{}) {
|
||||
console.log(`------> redirectTologin`, backUrl);
|
||||
setTimeout(() => {
|
||||
this.$nextTick(() => {
|
||||
let mode = 'navigateTo';
|
||||
// #ifdef H5
|
||||
mode = 'redirectTo';
|
||||
// #ifdef H5 || MP-HARMONY
|
||||
mode = 'redirectTo'; // H5必须使用redirectTo, 不然点击返回箭头无法返回。
|
||||
// #endif
|
||||
this.$refs?.login?.open(backUrl, mode);
|
||||
this.$refs?.login?.open(backUrl, mode, effectFnc);
|
||||
});
|
||||
}, 0);
|
||||
},
|
||||
|
||||
/**
|
||||
* 重新定向到登录授权, 当页面显示的时候, 失败后,
|
||||
* 原因:onLoad、onReady 只执行一次;
|
||||
* 而且,有的页面不需要这个功能
|
||||
* @param {String} backUrl
|
||||
*/
|
||||
redirectTologinOnShowLifecycle(backUrl) {
|
||||
console.log(`------> redirectTologinOnShowLifecycle`, backUrl);
|
||||
// #ifdef H5 || MP-HARMONY
|
||||
this.redirectTologin(backUrl);
|
||||
// #endif
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
this.redirectTologin(backUrl, {}, () => {
|
||||
uni.navigateBack({delta: 1 });
|
||||
})
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
filters: {
|
||||
|
||||
Reference in New Issue
Block a user