自定義攔截器,攔截到了某個請求就返回給前端一個JSON串

賀志營發表於2020-10-05

這裡通過token進行判斷,如果token沒有過期,就放行,如果token過期了,那就返回給前端一個失敗狀態碼

/*
     * preHandle:在控制器(controller)前執行,返回值表示是否中斷後續執行
     * 當返回值為true時表示繼續向下執行,為false時會中斷後續所有操作
     * */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        // 獲取請求頭中的令牌
        String token = request.getHeader("token");
        try {
            JWTUtils.verify(token);// 驗證令牌,成功直接放行,失敗不放行,並返回給前端一個JSON串
            return true;
        } catch (Exception e) {
            System.out.println(e.getMessage());

            response.setCharacterEncoding("UTF-8");
            response.setContentType("application/json;charset=UTF-8");
            PrintWriter out = null;
            try {
                out = response.getWriter();
                out.write(JSONUtils.getJSONString(-1,"The Token is wrong"));
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
        }
        return false;
    }

相關文章