LoginAdminGatewayFilter 5

来源:16-6 登录token超时优化

慕神4535282

2020-11-02

老师,下午好,请教一个问题,
后端 LoginAdminGatewayFilter.java

public class LoginAdminGatewayFilter implements GatewayFilter, Ordered {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        ....
        if (token == null || token.isEmpty()) {
            LOG.info("token为空,请求被拦截");
            exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
            return exchange.getResponse().setComplete();
        }
        ...
    }
}

前端 admin/src/main.js

error => {
  console.log("返回拦截:", error.response);
  let response = error.response;
  const status = response.status;
  if (status === 401) {
    // 判断状态码是401 跳转到登录
    console.log("未登录,跳到登录页面");
    Tool.setLoginUser(null);
    router.push('/login');
  }

为什么上面的代码是写成 response.status 而不是 response.statusCode; 这里的 response 究竟对应于后端的哪个类型?

谢谢老师解答 !

写回答

1回答

甲蛙

2020-11-02

response是http结果,你可以把response打印出来,包括status, data等数据。

gateway里的statusCode是gateway自己定义的属性,跟最终返回的status会不一样

0
1
慕神4535282
非常感谢!
2020-11-03
共1条回复

Spring Cloud+ Vue前后端分离开发企业级在线视频系统

全网稀缺课程 市场热门项目+主流框架 一课掌握前后端技术

1758 学习 · 1719 问题

查看课程