From 2d69232e5a397381e47daf2f0cf83d730a3d0100 Mon Sep 17 00:00:00 2001 From: chenyanchang <30190327@qq.com> Date: Wed, 20 May 2026 17:06:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8D=95=E7=82=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/web/service/SsoService.java | 38 +++++++++++++------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SsoService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SsoService.java index bd217bd..a575481 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SsoService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SsoService.java @@ -3,12 +3,17 @@ package com.ruoyi.framework.web.service; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.cms.service.impl.AppUserServiceImpl; import com.ruoyi.cms.util.StringUtil; +import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.entity.AppUser; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginSiteUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.utils.MessageUtils; import com.ruoyi.common.utils.encrypt.EncryptUtil; import com.ruoyi.common.utils.ip.IpUtils; +import com.ruoyi.framework.manager.AsyncManager; +import com.ruoyi.framework.manager.factory.AsyncFactory; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.client.methods.CloseableHttpResponse; @@ -40,7 +45,7 @@ public class SsoService { AppUserServiceImpl appUserService; @Autowired - TokenService tokenService; + private TokenSiteService tokenSiteService; @Value("${lc_web_auth.appId}") String webAppId; @@ -94,24 +99,32 @@ public class SsoService { AppUser appUser = appUserService.selectAppuserByIdcard(personCardNo); if (appUser == null) { //用户不存在,则先保存用户 - saveAppUser(userJson); + appUser = saveAppUser(userJson); } //用户存在,生成本系统用户的token - LoginUser loginUser = new LoginUser(); - SysUser user = new SysUser(); - user.setUserName(info.getString("userName")); - loginUser.setUser(user); - String token = tokenService.createToken(loginUser); + String token = loginApp(appUser, info.getString("userName")); //缓存token - String userKey = APP_USER_TOKEN_KEY + userJson.getString("userId"); - redisCache.setCacheObject(userKey, token, 2, TimeUnit.HOURS); +// String userKey = APP_USER_TOKEN_KEY + userJson.getString("userId"); +// redisCache.setCacheObject(userKey, token, 2, TimeUnit.HOURS); JSONObject backJson = new JSONObject(); backJson.put("token", token); backJson.put("lcToken", lcToken); return backJson; } - //1.获取token + //模拟登录 + public String loginApp(AppUser appUser, String userName){ + LoginSiteUser loginSiteUser = new LoginSiteUser(); + loginSiteUser.setUserId(appUser.getUserId()); + loginSiteUser.setUser(appUser); +// recordLoginInfo(appUser); + AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); +// recordLoginInfo(appUser); + // 生成token + return tokenSiteService.createToken(loginSiteUser); + } + + //获取token private String getToken(String url, String token, String params) { try { String result = sendHttpPost(url, token, params); @@ -151,9 +164,8 @@ public class SsoService { } } - //保存用户 - private void saveAppUser(JSONObject userJson) { + private AppUser saveAppUser(JSONObject userJson) { JSONObject info = userJson.getJSONObject("info"); AppUser appUser = new AppUser(); //app角色:0企业,1求职者,2网格员 3内部政府人员 4其他(浪潮用) @@ -192,6 +204,8 @@ public class SsoService { } appUserService.insertAppUser(appUser); + + return appUser; } //发送请求