Vue项目 - 超时登出后如何跳login登录后返回之前页面

在项目中,我们会经常遇到超时登出的功能。跟后台约定好超时登出后返回的code。目前这个项目的登出code是401。由于我们的axios是全局配置的,所以只需要在axios发送get或post请求的地方做一个是否登出的判断:(以下已post为例)

            axios .post(url, params).then(response => {
                if (response.data.code == '0' || response.data.code == '200') 
                    let copyDate = JSON.parse(JSON.stringify(response.data))
                    resolve(response.data) // 成功后返回
                } else if (response.data.code == '401') {
                    router.push({
                        path: '/login',
                        query: { redirect: location.hostname }
                    })
                } else {
                    resolve(response.data)}

配置好后在login.vue中的login方法中做一下判断,如果是在同一个地址下访问的页面,登出后go(-1),返回之前的那个页面,如果是从外部进入登录页面的,登录成功后会跳到首页(/homePage)。这里可以去了解一下location:hostname.

                if (this.$route.query.redirect == location.hostname) 
              {this.$router.go(-1);
              } else {
                this.$router.push({ path: "/homePage" });
              }  

你可能感兴趣的:(Vue项目 - 超时登出后如何跳login登录后返回之前页面)