Procházet zdrojové kódy

增加登录异常功能

增加登录异常功能
dangyunlong před 2 týdny
rodič
revize
cb51d27c3a
2 změnil soubory, kde provedl 26 přidání a 19 odebrání
  1. 19 5
      src/permission.js
  2. 7 14
      src/views/login/no-permission.vue

+ 19 - 5
src/permission.js

@@ -57,10 +57,24 @@ router.beforeEach(async (to, from, next) => {
                 }
             }
             if(loginType == 'backurl'){
-                //如果是backurl
-                const backurl = getBackUrlValue(window.location.href)
-                //带着token返回原网站
-                window.location.href = backurl + '?backurl=' + backurl + '&admintoken=' + getToken()
+                //此时分为两种情况,如果这个用户的token被放入了黑名单,此时不能允许用户带着token返回原网站
+                //否则他就会一直登录不了,这个时候应该让他重新登录
+                if(userInfo.code == 400){
+                    //跳转到登录页面
+                    if (to.path !== '/no-permission') {
+                        //避免重复跳转
+                        next({path:'/no-permission'})
+                    } else {
+                        //已经在无权限页面,不再跳转
+                        next()
+                    }
+                }else{
+                    //如果不是400,说明用户的这个token是可以用的,可以带着token返回C端
+                    //如果是backurl
+                    const backurl = getBackUrlValue(window.location.href)
+                    //带着token返回原网站
+                    window.location.href = backurl + '?backurl=' + backurl + '&admintoken=' + getToken()
+                }
             }
         } else {
             //3.4.2 如果有token,但是没在登录页面
@@ -69,7 +83,7 @@ router.beforeEach(async (to, from, next) => {
             if (hasRoles) {
                 const userInfo = await getInfo();
                 //如果用户没有权限登录该网站,返回登录页面
-                if(userInfo.code == -1){
+                if(userInfo.code == 400){
                     console.log("用户没有访问权限,将跳转到无权限页面!")
                     if (to.path !== '/no-permission') {
                         //避免重复跳转

+ 7 - 14
src/views/login/no-permission.vue

@@ -1,10 +1,10 @@
 <template>
     <div class="massageBox">
         <div class="massageImg"><img src="@/assets/login/iconContainer.png"></div>
-        <div class="massageTitle">暂无权限登录</div>
-        <div class="massageText">请联系管理员或客服人员操作</div>
+        <div class="massageTitle">登录状态异常</div>
+        <div class="massageText">登录凭证已过期或者网络异常,请重新登录</div>
         <div class="massageBtn">
-            <el-button type="primary" @click="goBack">返回原网站</el-button>
+            <el-button type="primary" @click="goLogin">重新登录</el-button>
         </div>
         <!-- <div class="massageBtn">
             <el-button  @click="goLogin">管理员登录</el-button>
@@ -22,18 +22,11 @@ export default {
         }
     },
     methods: {
-        goBack() {
-            //获取来源网站地址
-            let url = getUserUrl();
-            //返回来源网站
-            window.location.href = "http://" + url;
+        goLogin() {
+            this.$store.commit("user/LOGOUT");
+            //刷新页面
+            this.$router.push('/login');
         },
-        // goLogin() {
-        //     //设置来源网站为当前域名
-        //     setUserUrl(window.location.host,86400);
-        //     //跳转管理员登录页面
-        //     this.$router.push('/login');
-        // }
     }
 }
 </script>