From 38f29e38fcc668171dc05c53d40a36b895c86102 Mon Sep 17 00:00:00 2001 From: liusuyi <1951119284@qq.com> Date: 星期四, 10 十月 2024 13:34:28 +0800 Subject: [PATCH] init --- ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java | 28 ++++++++++++++++++++++++---- 1 files changed, 24 insertions(+), 4 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 65f812c..c1d6552 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -1,9 +1,10 @@ package com.ruoyi.framework.web.service; import javax.annotation.Resource; - import com.ruoyi.rongcloud.service.RongCloudService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -36,6 +37,11 @@ */ @Component public class SysLoginService { + + // 鏄惁鍏佽璐︽埛澶氱粓绔悓鏃剁櫥褰曪紙true鍏佽 false涓嶅厑璁革級 + @Value("${token.soloLogin}") + private boolean soloLogin; + @Autowired private TokenService tokenService; @@ -50,6 +56,7 @@ @Autowired private ISysConfigService configService; + @Resource RongCloudService rongCloudService; @@ -63,6 +70,7 @@ * @return 缁撴灉 */ public String login(String username, String password, String code, String uuid) { + boolean captchaEnabled = configService.selectCaptchaEnabled(); // 楠岃瘉鐮佸紑鍏� if (captchaEnabled) { @@ -89,10 +97,20 @@ AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); LoginUser loginUser = (LoginUser) authentication.getPrincipal(); recordLoginInfo(loginUser.getUserId()); + if (!soloLogin) + { + // 濡傛灉鐢ㄦ埛涓嶅厑璁稿缁堢鍚屾椂鐧诲綍锛屾竻闄ょ紦瀛樹俊鎭� + String userIdKey = Constants.LOGIN_USERID_KEY + loginUser.getUser().getUserId(); + String userKey = redisCache.getCacheObject(userIdKey); + if (StringUtils.isNotEmpty(userKey)) + { + redisCache.deleteObject(userIdKey); + redisCache.deleteObject(userKey); + } + } + getRongCloudToken(loginUser); // 鐢熸垚token String token = tokenService.createToken(loginUser); - //鑾峰彇铻嶄簯token - getRongCloudToken(loginUser); return token; } /** @@ -134,7 +152,8 @@ * * @param loginUser 鐧诲綍鐢ㄦ埛 */ - public void getRongCloudToken(LoginUser loginUser) { + @Async("globalExecutor") + public String getRongCloudToken(LoginUser loginUser) { try { String userId = loginUser.getUserId(); String nickName = loginUser.getUser().getNickName(); @@ -144,6 +163,7 @@ sysUser.setUserId(userId); sysUser.setRongCloudToken(token); userService.updateUserProfile(sysUser); + return token; } catch (Exception ex) { throw ex; } -- Gitblit v1.9.3