前端性能优化 掌握行业实用、专业、前沿的解决方案
v:ititit111222333
/**
* 访问controller之前进行拦截
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
// 从前端的header里面获取userId和userToken
String userId = request.getParameter("userId");
String userToken = request.getParameter("userToken");
if (StringUtils.isBlank(userId) && StringUtils.isBlank(userToken)) {
buildErrorMsg(response, IMOOCJSONResult.errorMsg("用户未登录"));
return false;
}
String USER_TOKEN = "USER";
String uniqueUserToken = redisOperator.get(USER_TOKEN + ":" + userId);
// 校验token是否一致
if (!uniqueUserToken.equals(userToken)) {
buildErrorMsg(response, IMOOCJSONResult.errorMsg("账号异地登录"));
}
// 返回true才能被认为是拦截通过
return true;
}