前后端分离项目,登录过期时返回状态码(后台:springboot+shiro)

shiroFilterFactoryBean.setLoginUrl("/login")会直接跳转到登陆页面,有时候可能让人摸不着头脑--为什么突然要我登陆了,猫饼。。

综上所述,俺决定改为在前端根据状态码(401表示未登录)提示未登录(或者失败的原因)以后再行跳转。实现的方法网上忒多,俺就不记录了,记录一下思路。

因为后端用的是shiro权限框架,所以想到自定义一个Filter,当用户没有登录的时候返回状态码和错误信息。话说其他的框架好像也是这样的?但是不知道是要继承或者实现哪一个过滤器。百度找到一个FormAuthenticationFilter表单拦截器,重写isAccessAllowed(...)和OnAccessDenied(...)方法就可以了。因为代码是复制的所以就不贴出来了(博文地址在这http://chenrd.com/detail-141.html),记录一下这两个方法的作用。

首先两个方法的返回值都是boolean,那么说明这是两个“开关”。第一个开关isAccessAllowed表示是否为允许访问的方法,在这里做一个是否已登录的判断,第二个开关onAccessDenied是当访问被拒绝时是否已经被处理了,如果需要继续处理就返回true,不需要就返回false,那么在这里把状态码添加到响应中去就可以从前端取到了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值