fix token时而出现相同而导致的bug
This commit is contained in:
parent
7354f5f57d
commit
8121c69f07
|
|
@ -57,6 +57,11 @@ public class LikeFrontInterceptor implements HandlerInterceptor {
|
||||||
return HandlerInterceptor.super.preHandle(request, response, handler);
|
return HandlerInterceptor.super.preHandle(request, response, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 登录权限校验
|
||||||
|
try {
|
||||||
|
Method method = this.obtainAop(handler);
|
||||||
|
this.checkLogin(method);
|
||||||
|
|
||||||
// 记录当前平台
|
// 记录当前平台
|
||||||
String terminal = request.getHeader("terminal");
|
String terminal = request.getHeader("terminal");
|
||||||
String token = request.getHeader(YmlUtils.get("sa-token.token-name"));
|
String token = request.getHeader(YmlUtils.get("sa-token.token-name"));
|
||||||
|
|
@ -65,17 +70,12 @@ public class LikeFrontInterceptor implements HandlerInterceptor {
|
||||||
if (StringUtils.isEmpty(token)) {
|
if (StringUtils.isEmpty(token)) {
|
||||||
LikeFrontThreadLocal.put("terminal", ClientEnum.PC.getCode());
|
LikeFrontThreadLocal.put("terminal", ClientEnum.PC.getCode());
|
||||||
} else {
|
} else {
|
||||||
UserSession userSession = userSessionMapper.selectOne(new QueryWrapper<UserSession>().eq("token", token).gt("expire_time", System.currentTimeMillis() / 1000).orderByDesc("id").last("limit 1"));
|
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());
|
LikeFrontThreadLocal.put("terminal", StringUtils.isNull(userSession) ? ClientEnum.H5.getCode() : userSession.getTerminal());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LikeFrontThreadLocal.put("terminal", terminal);
|
LikeFrontThreadLocal.put("terminal", terminal);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 登录权限校验
|
|
||||||
try {
|
|
||||||
Method method = this.obtainAop(handler);
|
|
||||||
this.checkLogin(method);
|
|
||||||
} catch (LoginException e) {
|
} catch (LoginException e) {
|
||||||
AjaxResult<Object> result = AjaxResult.failed(e.getCode(), e.getMsg());
|
AjaxResult<Object> result = AjaxResult.failed(e.getCode(), e.getMsg());
|
||||||
response.getWriter().print(JSON.toJSONString(result));
|
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.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
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.User;
|
||||||
import com.mdd.common.entity.user.UserAuth;
|
import com.mdd.common.entity.user.UserAuth;
|
||||||
import com.mdd.common.entity.user.UserSession;
|
import com.mdd.common.entity.user.UserSession;
|
||||||
import com.mdd.common.enums.LoginEnum;
|
import com.mdd.common.enums.LoginEnum;
|
||||||
import com.mdd.common.enums.NoticeEnum;
|
import com.mdd.common.enums.NoticeEnum;
|
||||||
import com.mdd.common.exception.OperateException;
|
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.UserAuthMapper;
|
||||||
import com.mdd.common.mapper.user.UserMapper;
|
import com.mdd.common.mapper.user.UserMapper;
|
||||||
import com.mdd.common.mapper.user.UserSessionMapper;
|
import com.mdd.common.mapper.user.UserSessionMapper;
|
||||||
|
|
@ -39,7 +36,6 @@ import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
@ -52,12 +48,11 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
UserMapper userMapper;
|
UserMapper userMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
UserAuthMapper userAuthMapper;
|
UserAuthMapper userAuthMapper;
|
||||||
@Resource
|
@Resource
|
||||||
UserSessionMapper userSessionMapper;
|
UserSessionMapper userSessionMapper;
|
||||||
@Resource
|
|
||||||
UserAccountLogMapper userAccountLogMapper;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册账号
|
* 注册账号
|
||||||
|
|
@ -127,13 +122,6 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
Assert.isFalse(!pwd.equals(user.getPassword()), "账号或密码错误!");
|
Assert.isFalse(!pwd.equals(user.getPassword()), "账号或密码错误!");
|
||||||
Assert.isFalse(!user.getIsDisable().equals(0), "账号已被禁用!");
|
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);
|
return this.__loginToken(user.getId(), user.getMobile(), user.getIsNewUser(), terminal);
|
||||||
} else {
|
} else {
|
||||||
return mobileLogin(account, code, terminal, sceneId);
|
return mobileLogin(account, code, terminal, sceneId);
|
||||||
|
|
@ -450,20 +438,6 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
// 实现账号登录
|
// 实现账号登录
|
||||||
StpUtil.login(userId);
|
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 user = new User();
|
||||||
user.setLoginIp(IpUtils.getHostIp());
|
user.setLoginIp(IpUtils.getHostIp());
|
||||||
|
|
@ -482,7 +456,7 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
|
|
||||||
UserSession userSession = new UserSession();
|
UserSession userSession = new UserSession();
|
||||||
userSession.setUserId(userId);
|
userSession.setUserId(userId);
|
||||||
userSession.setToken(StpUtil.getTokenValue());
|
userSession.setToken(StpUtil.getTokenValue() + userId);
|
||||||
userSession.setTerminal(terminal);
|
userSession.setTerminal(terminal);
|
||||||
userSession.setUpdateTime(System.currentTimeMillis() / 1000);
|
userSession.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||||
userSession.setExpireTime(System.currentTimeMillis() / 1000 + Long.valueOf(YmlUtils.get("sa-token.timeout")));
|
userSession.setExpireTime(System.currentTimeMillis() / 1000 + Long.valueOf(YmlUtils.get("sa-token.timeout")));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue