From 8121c69f0764579855bbf89a22d0b6f04e0a5c8a Mon Sep 17 00:00:00 2001 From: damonyuan <404054358@qq.com> Date: Sat, 9 Nov 2024 12:28:29 +0800 Subject: [PATCH] =?UTF-8?q?fix=20token=E6=97=B6=E8=80=8C=E5=87=BA=E7=8E=B0?= =?UTF-8?q?=E7=9B=B8=E5=90=8C=E8=80=8C=E5=AF=BC=E8=87=B4=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mdd/front/LikeFrontInterceptor.java | 30 +++++++++---------- .../front/service/impl/LoginServiceImpl.java | 30 ++----------------- 2 files changed, 17 insertions(+), 43 deletions(-) diff --git a/server/like-front/src/main/java/com/mdd/front/LikeFrontInterceptor.java b/server/like-front/src/main/java/com/mdd/front/LikeFrontInterceptor.java index ad76390a..b66edb28 100644 --- a/server/like-front/src/main/java/com/mdd/front/LikeFrontInterceptor.java +++ b/server/like-front/src/main/java/com/mdd/front/LikeFrontInterceptor.java @@ -57,25 +57,25 @@ public class LikeFrontInterceptor implements HandlerInterceptor { return HandlerInterceptor.super.preHandle(request, response, handler); } - // 记录当前平台 - String terminal = request.getHeader("terminal"); - String token = request.getHeader(YmlUtils.get("sa-token.token-name")); - if (StringUtils.isEmpty(terminal)) { - //userSessionMapper. - if (StringUtils.isEmpty(token)) { - LikeFrontThreadLocal.put("terminal", ClientEnum.PC.getCode()); - } else { - UserSession userSession = userSessionMapper.selectOne(new QueryWrapper().eq("token", token).gt("expire_time", System.currentTimeMillis() / 1000).orderByDesc("id").last("limit 1")); - LikeFrontThreadLocal.put("terminal", StringUtils.isNull(userSession) ? ClientEnum.H5.getCode() : userSession.getTerminal()); - } - } else { - LikeFrontThreadLocal.put("terminal", terminal); - } - // 登录权限校验 try { Method method = this.obtainAop(handler); this.checkLogin(method); + + // 记录当前平台 + String terminal = request.getHeader("terminal"); + String token = request.getHeader(YmlUtils.get("sa-token.token-name")); + if (StringUtils.isEmpty(terminal)) { + //userSessionMapper. + if (StringUtils.isEmpty(token)) { + LikeFrontThreadLocal.put("terminal", ClientEnum.PC.getCode()); + } else { + UserSession userSession = userSessionMapper.selectOne(new QueryWrapper().eq("token", token + LikeFrontThreadLocal.getUserId()).gt("expire_time", System.currentTimeMillis() / 1000).orderByDesc("id").last("limit 1")); + LikeFrontThreadLocal.put("terminal", StringUtils.isNull(userSession) ? ClientEnum.H5.getCode() : userSession.getTerminal()); + } + } else { + LikeFrontThreadLocal.put("terminal", terminal); + } } catch (LoginException e) { AjaxResult result = AjaxResult.failed(e.getCode(), e.getMsg()); response.getWriter().print(JSON.toJSONString(result)); diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/LoginServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/LoginServiceImpl.java index 28bfda48..f889315f 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/LoginServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/LoginServiceImpl.java @@ -4,17 +4,14 @@ import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.dev33.satoken.stp.StpUtil; import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Assert; -import com.mdd.common.entity.log.UserAccountLog; import com.mdd.common.entity.user.User; import com.mdd.common.entity.user.UserAuth; import com.mdd.common.entity.user.UserSession; import com.mdd.common.enums.LoginEnum; import com.mdd.common.enums.NoticeEnum; import com.mdd.common.exception.OperateException; -import com.mdd.common.mapper.log.UserAccountLogMapper; import com.mdd.common.mapper.user.UserAuthMapper; import com.mdd.common.mapper.user.UserMapper; import com.mdd.common.mapper.user.UserSessionMapper; @@ -39,7 +36,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpSession; import java.io.IOException; import java.io.UnsupportedEncodingException; -import java.math.BigDecimal; import java.net.URLEncoder; import java.util.Map; @@ -52,12 +48,11 @@ public class LoginServiceImpl implements ILoginService { @Resource UserMapper userMapper; + @Resource UserAuthMapper userAuthMapper; @Resource UserSessionMapper userSessionMapper; - @Resource - UserAccountLogMapper userAccountLogMapper; /** * 注册账号 @@ -127,13 +122,6 @@ public class LoginServiceImpl implements ILoginService { Assert.isFalse(!pwd.equals(user.getPassword()), "账号或密码错误!"); Assert.isFalse(!user.getIsDisable().equals(0), "账号已被禁用!"); - - userAccountLogMapper.insert(new UserAccountLog() {{ - setUserId(0); - setChangeType(0); - setChangeAmount(new BigDecimal(0)); - setExtra(JSONObject.toJSONString(user)); - }}); return this.__loginToken(user.getId(), user.getMobile(), user.getIsNewUser(), terminal); } else { return mobileLogin(account, code, terminal, sceneId); @@ -450,20 +438,6 @@ public class LoginServiceImpl implements ILoginService { // 实现账号登录 StpUtil.login(userId); - userAccountLogMapper.insert(new UserAccountLog() {{ - setUserId(0); - setChangeType(0); - setChangeAmount(new BigDecimal(0)); - setExtra(JSONObject.toJSONString(StpUtil.getLoginId())); - }}); - - userAccountLogMapper.insert(new UserAccountLog() {{ - setUserId(0); - setChangeType(0); - setChangeAmount(new BigDecimal(0)); - setExtra(JSONObject.toJSONString(userId)); - }}); - // 更新登录信息 User user = new User(); user.setLoginIp(IpUtils.getHostIp()); @@ -482,7 +456,7 @@ public class LoginServiceImpl implements ILoginService { UserSession userSession = new UserSession(); userSession.setUserId(userId); - userSession.setToken(StpUtil.getTokenValue()); + userSession.setToken(StpUtil.getTokenValue() + userId); userSession.setTerminal(terminal); userSession.setUpdateTime(System.currentTimeMillis() / 1000); userSession.setExpireTime(System.currentTimeMillis() / 1000 + Long.valueOf(YmlUtils.get("sa-token.timeout")));