Просмотр исходного кода

:tada: token可配置到redis实现有状态,可配置在线多人或一人模式

smallchill 6 лет назад
Родитель
Сommit
69d2506319

+ 9 - 1
src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java

@@ -25,7 +25,10 @@ import lombok.AllArgsConstructor;
 import org.springblade.common.cache.CacheNames;
 import org.springblade.core.cache.constant.CacheConstant;
 import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.jwt.JwtUtil;
+import org.springblade.core.jwt.props.JwtProperties;
 import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.launch.constant.TokenConstant;
 import org.springblade.core.log.annotation.ApiLog;
 import org.springblade.core.redis.cache.BladeRedis;
 import org.springblade.core.secure.BladeUser;
@@ -57,6 +60,7 @@ import java.util.UUID;
 public class BladeTokenEndPoint {
 
 	private final BladeRedis bladeRedis;
+	private final JwtProperties jwtProperties;
 
 	@ApiLog("登录用户验证")
 	@PostMapping("/oauth/token")
@@ -94,7 +98,11 @@ public class BladeTokenEndPoint {
 	@ApiOperation(value = "退出登录")
 	public Kv logout() {
 		BladeUser user = AuthUtil.getUser();
-		return Kv.create().set("success", "true").set("account", user.getAccount()).set("msg", "success");
+		if (user != null && jwtProperties.getState()) {
+			String token = JwtUtil.getToken(WebUtil.getRequest().getHeader(TokenConstant.HEADER));
+			JwtUtil.removeAccessToken(user.getTenantId(), String.valueOf(user.getUserId()), token);
+		}
+		return Kv.create().set("success", "true").set("msg", "success");
 	}
 
 	@GetMapping("/oauth/captcha")

+ 3 - 0
src/main/resources/application.yml

@@ -126,6 +126,9 @@ social:
 
 #blade配置
 blade:
+  #token配置
+  token:
+    state: false
   #xss配置
   xss:
     enabled: true