拦截器“失效”?null 还是"null"?
问题描述
这个问题本身并不复杂,但是却是一个容易被忽略的问题。
相信大家在项目中一定实现过强制登录的逻辑吧,巧了,所要介绍的问题就出现在测试强制登录接口的过程中,具体来说:
我的项目采用 JWT令牌 + LocalStorage的方式验证和保存会话信息,当用户以无令牌的方式访问除登录页面外的其他页面时,会被后端的拦截器拦截,拦截后会设置状态码401,前端接收到401的响应后会强制跳转到登录页面。
我执行的操作,清除本地存储的token信息,然后访问非登录页面。
预期结果:当用户以无令牌的方式访问除登录页面外的其他页面时,强制跳转到登录页面。
实际结果:当用户以无令牌的方式访问除登录页面外的其他页面时,没有强制跳转到登录页面
相关代码:
- 拦截器代码
@Slf4j
@Component
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//约定前端把用户的token放在header中
String token = request.getHeader(Constants.HEADER_USER_TOKEN);
log.info("拦截器:从header中获取token:" + token);
if(token == null) {
//用户未登录
response.setStatus(401);
return false;
}
Claims claim = JWTUtils.parseToken(token);
if(claim == null) {
//无效的token
response.setStatus(401);
return false;
}
return true;
}
}
- 前端代码
//ajaxSend:在ajax请求即将发送前执行的方法,这里的逻辑是设置header信息,确保请求携带token
$(document).ajaxSend(function(event, xhr, options) {
xhr.setRequestHeader("user_token"

——拦截器“失效”?null 还是“null“?&spm=1001.2101.3001.5002&articleId=147285620&d=1&t=3&u=8fc115fff0e046cb884e8c032819d25b)
1010

被折叠的 条评论
为什么被折叠?



