设为首页 加入收藏

TOP

剖析JWT,及其使用案例(二)
2023-07-23 13:26:43 】 浏览:31
Tags:剖析 JWT
ide public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 放行OPTIONS请求 if(HttpMethod.OPTIONS.toString().equalsIgnoreCase(request.getMethod())){ response.setStatus(HttpStatus.NO_CONTENT.value()); return true; } // 从前端获取token String accountToken = request.getHeader("token"); if(StringUtils.isBlank(accountToken)){ accountToken = request.getParameter("token"); } if(StringUtils.isNotBlank(accountToken)){ // 校验token,获取claims Claims claims = JWTUtil.checkJWT(accountToken); if(claims == null){ // 未登录 CommonUtil.sendJsonMessage(response, JsonData.buildResult(BizCodeEnum.ACCOUNT_UNLOGIN)); return false; } // 获取用户字段信息 Long accountNo = Long.parseLong(claims.get("account_no").toString()); String headImg = (String) claims.get("head_img"); String username = (String) claims.get("username"); String mail = (String) claims.get("mail"); String phone = (String) claims.get("phone"); String auth = (String) claims.get("auth"); // LoginUser对象需加@Data@Builder@AllArgsConstructor@NoArgsConstructor LoginUser loginUser = LoginUser.builder() .accountNo(accountNo) .auth(auth) .phone(phone) .headImg(headImg) .mail(mail) .userName(username) .build(); //request.setAttribute("loginUser",loginUser); //通过threadlocal threadLocal.set(loginUser); return true; } return false; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇阿里云Bucket的简单使用 下一篇一道面试题:计算时间偏移量,怎..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目