退出登录的逻辑

Vue3中useRouteruseRoute,容易弄混

Vue3的useRouter和useRoute_useroute userouter_鬼鬼骑士的博客-CSDN博客

退出登录逻辑:

1、点击退出登录以后,向服务器发请求,token失效

2、将仓库中所有和用户相关的数据全部清除

3、跳转到登录页面

4、优化:用户退出登录以后,再次登录,会回到用户之前停留的那个模块而不是首页,这样比较人性化

“退出登录”按钮的回调函数:


//退出登录点击回调
const logout = async () => {
    //仓库数据全部清除
    await userStore.userLogout();
    //跳转到登录页面,并且携带当前所在模块的url参数
    $router.push({ path: '/login', query: { redirect: $route.path } });

}

仓库里面的actions代码: 


 async userLogout() {
            //退出登录请求
            let result: any = await reqLogout();
            if (result.code == 200) {
                //退出登录接口(通知服务器本地用户唯一标识失效)
                this.token = '';
                this.username = '';
                this.avatar = '';
                REMOVE_TOKEN();
                return 'ok';
            } else {
                return Promise.reject(new Error(result.message));
            }
        }

在原来“登录”按钮的回调函数里面加上:

    //判断登录的时候,路由路径当中是否有query参数,如果有就往query参数跳转,没有跳转到首页
    let redirect: any = $route.query.redirect;
    $router.push({ path: redirect || '/' });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值