spring cloud gateway 重定向到登陆页面的设置 继承GlobalFilter,自定义filter ,前端是vue实现的。
转:https://blog.csdn.net/qq_27093465/article/details/109738027?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.queryctrv4&spm=1001.2101.3001.4242.1&utm_relevant_index=3
在gateway做权限设置和路由,转发请求到其他子服务模块,要是token超时了,则需要给重定向到登陆页面,前端使用vue.js实现。
@Component
public class JwtTokenFilter implements GlobalFilter, Ordered {
@Override
public Mono
ServerHttpResponse response = exchange.getResponse();
HttpCookie cookie = exchange.getRequest().getCookies().getFirst("TOKEN");
if (cookie != null) {
// NOTE: 服务间调用使用服务名,restTemplate必须加@LoadBalanced注解
Boolean ok = template.postForObject(authUrl, cookie.getValue(), Boolean.class);
if (ok != null && ok) {
return chain.filter(exchange);
}
}
String redirectUrl = "完整的URL地址,比如: http://192.168.22.140:8002/index.html";
logger.info("bmg 重定向到URL: {}", redirectUrl);
response.getHeaders().set(HttpHeaders.LOCATION, redirectUrl);
//303状态码表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源
response.setStatusCode(HttpStatus.SEE_OTHER);
response.getHeaders().add("Content-Type", "text/plain;charset=UTF-8");
return response.setComplete();
}
@Override
public int getOrder() {
return 1;
}
}
vue的前端要想能正常工作,得返回给他个页面,完整的html之类的,要是返回给他个json,就啥也没了,他就啥也干不了拉。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix