范闲月 2021-10-03 01:23 采纳率: 0%
浏览 38

vue前端接收springboot拦截器返回的错误信息并进行处理

设计一个单态登录的功能,在拦截器处对sessionId进行了校验,如果已在其他设备登录会返回错误信息,但是vue前端怎么接收这个错误信息并根据错误信息进行踢人下线呢
public class JwtIntercepter implements HandlerInterceptor {
private AuthenticationCheck AuthticationCheck;

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    if("OPTIONS".equals(request.getMethod().toUpperCase())){
        return true;
    }
    String token = request.getHeader("token");
    Map map = new HashMap();
    try {
        JwtUtils jwtUtils = new JwtUtils();
        jwtUtils.verify(token);
        AuthticationCheck.getToken(token);
        try{
            LoginListener loginListener = new LoginListener();
            loginListener.checkSessionId(token);
        }catch (Exception e){
            e.printStackTrace();
            map.put("msg",e.getMessage());
            String json = new ObjectMapper().writeValueAsString(map);
            response.setContentType("application/json;charset=UTF-8");
            response.getWriter().println(json);
            return false;
        }
        System.out.println("拦截器role"+jwtUtils.getRole(request));
        return true;
    }catch (SignatureVerificationException e){
        e.printStackTrace();
        map.put("msg","无效签名");
    }catch (TokenExpiredException e){
        e.printStackTrace();
        map.put("msg","令牌过期");
    }catch (Exception e){
        e.printStackTrace();
        map.put("msg","令牌无效");
    }
    map.put("state",false);
    String json = new ObjectMapper().writeValueAsString(map);
    response.setContentType("application/json;charset=UTF-8");
    response.getWriter().println(json);
    return false;
}

}

  • 写回答

1条回答 默认 最新

  • 关注

    要使用token技术实现,不能使用session。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月3日

悬赏问题

  • ¥15 两分段线性回归模型分析阈值效应
  • ¥15 前端和后端代码都没报错,但是点登录没反应的?
  • ¥100 需要远程解决QSQLITE问题!
  • ¥15 代码问题,应该怎样去修改完善。求解答,
  • ¥15 利用光场表达式画出初始光场强度分布图像等几个问题在这两个图片里
  • ¥15 gozero求手把手教学,400一天
  • ¥15 泥浆冲清水的泥浆分布
  • ¥15 LASSO回归分析筛选关键基因,适合多大样本量?
  • ¥88 error: [polling_error] {"code":"ETELEGRAM","message":"ETELEGRAM: 502 Bad Gateway"}错误
  • ¥15 刚毕业,刚通过一家PLC工程师,请问一下待遇还算可以吗?