david 2 лет назад
Родитель
Сommit
bee04636d1

+ 8 - 0
src/main/java/com/roma/romaapi/controller/ApiController.java

@@ -56,4 +56,12 @@ public class ApiController {
 
         return CustomResponse.formatResponse(loginResult);
     }
+
+    // 退出登录
+    @RequestMapping("/api/logout")
+    public Map logout(@RequestHeader("Authorization") String authorization){
+        Map<String, Object> loginResult = apiService.logout(authorization);
+
+        return CustomResponse.formatResponse(loginResult);
+    }
 }

+ 9 - 1
src/main/java/com/roma/romaapi/service/ApiService.java

@@ -76,7 +76,7 @@ public class ApiService {
         return map;
     }
 
-    // 获取头部用户信息
+    // 通过头部,获取用户信息
     public Map<String, Object> userInfo(String headerToken) {
         String userId = commonUtil.getUserIdByHeaderAuthorization(headerToken);
         Map<String, Object> map = new HashMap<>();
@@ -90,4 +90,12 @@ public class ApiService {
 
         return map;
     }
+
+    // 退出登录
+    public Map<String, Object> logout(String headerToken) {
+        Boolean logout = commonUtil.logoutDeleteRedisToken(headerToken);
+        Map<String, Object> map = new HashMap<>();
+        map.put("sysErrorCode","50000");
+        return map;
+    }
 }

+ 7 - 0
src/main/java/com/roma/romaapi/utils/CommonUtil.java

@@ -23,4 +23,11 @@ public class CommonUtil {
         }
         return userId;
     }
+
+    // 退出登录删除缓存中的token
+    public Boolean logoutDeleteRedisToken(String headerAuthorization){
+        String token = headerAuthorization.substring(7); // 截取token
+        String redisTokenKey = SIGN + token;
+        return stringRedisTemplate.delete(redisTokenKey);
+    }
 }