Browse Source

处理登出后第一次验证码不加载问题

xusl 1 năm trước cách đây
mục cha
commit
62d398e789

+ 3 - 8
backend/src/main/java/com/jiayue/ssi/handler/CustomLogoutSuccessHandler.java

@@ -51,14 +51,9 @@ public class CustomLogoutSuccessHandler implements org.springframework.security.
 //        // 将token存储内存中,便于重复登录比对
 //        CacheConstants.LOGIN_TOKEN_MAP.remove(sysUser.getUsername());
 //        LoginConstants.sessionMap.remove(sysUser.getUsername());
-//        Iterator<Map.Entry<String, String>> countMap = CacheConstants.IP_USER_MAP.entrySet().iterator();
-//        while (countMap.hasNext()) {
-//            Map.Entry<String, String> entry = countMap.next();
-//            String cacheusername = entry.getValue();
-//            if (cacheusername.equals(sysUser.getUsername())){
-//                countMap.remove();
-//            }
-//        }
+
+        CacheConstants.IP_USER_MAP.remove(IPUtils.getIpAddr(request));
+
         String obj = JSONUtil.toJsonStr(ResponseVO.success("退出成功"));
         // token加密处理
         String encrypt = SM2CryptUtils.encrypt(obj, SecretKeyConstants.CLIENT_PUBLIC_KEY);

+ 4 - 0
ui/src/utils/auth.js

@@ -18,3 +18,7 @@ export function removeToken() {
   store.dispatch('tagsView/delAllCachedViews')
   store.dispatch('tagsView/delAllVisitedViews')
 }
+
+export function sleep(ms) {
+  return new Promise(resolve => setTimeout(resolve, ms));
+}

+ 4 - 1
ui/src/utils/request.js

@@ -3,7 +3,7 @@ import Vue from "vue";
 import {Message, MessageBox} from "element-ui";
 
 import store from "@/store";
-import {removeToken} from "@/utils/auth";
+import {removeToken,sleep} from "@/utils/auth";
 import router, {resetRouter} from "@/router";
 import {doEncrypt, doDecryptStr,doSign,doVerifySignature,userinfoEncrypt,userinfoDecrypt} from '@/utils/smutil'
 const service = axios.create({
@@ -139,6 +139,7 @@ service.interceptors.response.use(
           // 返回 401 清除token信息并跳转到登录页面
           removeToken()
           resetRouter()
+          await sleep(2000);
           router.push('/login')
           Message({
             message: error.response.data,
@@ -161,6 +162,7 @@ service.interceptors.response.use(
           // 返回 401 清除token信息并跳转到登录页面
           removeToken()
           resetRouter()
+          await sleep(2000);
           router.push('/login')
           Message({
             message: error.response.data,
@@ -226,6 +228,7 @@ service.interceptors.response.use(
           })
           removeToken()
           resetRouter()
+          await sleep(2000);
           router.push('/login')
           break
         case 504:

+ 3 - 0
ui/src/views/login/index.vue

@@ -247,11 +247,14 @@ export default {
       var searchParams = {
         murmur: this.murmur
       }
+      console.log('获取验证码')
       this.$axios.get('/getVerifyCode',
         {params: searchParams}).then((res) => {
         this.verifyuuid = res.data.uuid
         this.captchaUrl = 'data:image/gif;base64,' + res.data.imgBase64;
         this.captchaText = res.data.captchaText
+      }).catch((error) => {
+
       })
     }, 1000),
     updateCaptcha() {