fix token时而出现相同而导致的bug
This commit is contained in:
parent
7354f5f57d
commit
8121c69f07
|
|
@ -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<UserSession>().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<UserSession>().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<Object> result = AjaxResult.failed(e.getCode(), e.getMsg());
|
||||
response.getWriter().print(JSON.toJSONString(result));
|
||||
|
|
|
|||
|
|
@ -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")));
|
||||
|
|
|
|||
Loading…
Reference in New Issue