Vue 如何实现登录后跳转回原来的页面

环境

Vue 3 + TS

http.ts

在http.ts中实现拦截,如果后台返回没权限信息,就跳转到登录页面

//响应拦截
axios.interceptors.response.use((response: AxiosResponse<any, any>) => {
        endLoading();
        console.log("返回值打印开始----------")
        console.log(JSON.stringify(response))
        console.log("返回值打印结束----------")
        if (response.data.code != 200) {
            ElNotification({
                title: 'Error',
                message: response.data.message,
                type: 'error',
            })
        }
        return response;
    }, error => {

        //错误提醒
        endLoading();
        //todo :完成没有权限就跳转到登录页
        if (error.response) {
            console.log("status:" + error.response.status)
            switch (error.response.status) {
                case 401:
                    //完善登录跳转
                    alert("身份认证失败~")
                    // @ts-ignore  入如果没有权限就在这跳转到登录页
                    router.push({
                            //传递参数使用query的话,指定path或者name都行,但使用params的话,只能使用name指定
                            path: '/login',
                            query: {
                                auth: "0"
                            }
                        }
                    );
                    break;
                default:
                    alert("未知错误~")
            }
        }

        return Promise.reject(error);
    }

登录页面登陆成功之后

  proxy.$axios.post(userLoginApi, props.loginUser)
              .then((res: Result) => {
                //发送成功
                if (res.data.code == 200) {
                  saveStorage(res);
                  proxy.$message({
                    message: res.data.message,
                    type: "success"
                  });
                  //在这里判断一下,是不是刚刚传过来的字段
                  if (route.query.auth=="0"){
                      router.go(-1);
                  }
                } else {
                  proxy.$message({
                    message: res.data.message,
                    type: "error"
                  });
                }

你可能感兴趣的:(解决的问题,vue,typescript,html5,css)