From 3603582c88672dbb09b00088f7b23ab2b84257df Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Wed, 10 Jun 2020 11:31:13 +0800
Subject: [PATCH] 若依 2.0

---
 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
index 963e063..4058f75 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -1,5 +1,6 @@
 package com.ruoyi.auth.controller;
 
+import java.util.Map;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
@@ -9,8 +10,11 @@
 import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.core.constant.Constants;
+import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.system.api.RemoteLogService;
 
 /**
  * token 控制
@@ -23,6 +27,9 @@
 {
     @Autowired
     private TokenStore tokenStore;
+
+    @Autowired
+    private RemoteLogService remoteLogService;
 
     @DeleteMapping("/logout")
     public R<?> logout(@RequestHeader(value = HttpHeaders.AUTHORIZATION, required = false) String authHeader)
@@ -45,6 +52,13 @@
         // 清空 refresh token
         OAuth2RefreshToken refreshToken = accessToken.getRefreshToken();
         tokenStore.removeRefreshToken(refreshToken);
+        Map<String, ?> map = accessToken.getAdditionalInformation();
+        if (map.containsKey(SecurityConstants.DETAILS_USERNAME))
+        {
+            String username = (String) map.get(SecurityConstants.DETAILS_USERNAME);
+            // 记录用户退出日志
+            remoteLogService.saveLogininfor(username, Constants.LOGOUT, "退出成功");
+        }
         return R.ok();
     }
 }

--
Gitblit v1.9.3