//2、校验令牌
try {
log.info("jwt校验:{}", token);
Claims claims = JwtUtil.parseJWT(jwtProperties.getUserSecretKey(), token);
Long userId = Long.valueOf(claims.get(JwtClaimsConstant.USER_ID).toString());
BaseContext.setCurrentId(userId);
log.info("当前员工id:", userId);
//3、通过,放行
return true;
} catch (Exception e) {
//4、不通过,响应401状态码
log.info("校验不通过");
log.info(String.valueOf(e));
response.setStatus(401);
return false;
}
微信小程序中发出的请求,总是无法成功运行,查找异常发现当令牌传到服务端之后就停止运行,。确定问题发生在请求拦截阶段。(当时我的代码中还没有log.info(String.valueOf(e));)
从令牌中获取UserId的值,爆出空指针异常,校验不通过,查看后发现,原来是clams中传入的参数错误,导致userId为空。
总结:
catch中加入打印错误日志,方便排查错误。