项目需要对登录信息进行管理,也就是有状态的token信息,现已经完成了token的状态管理。出现一个bug,就是在token过期后,会先出现一个原生的登录弹窗,效果如图。

一开始以为是前端那边处理一下即可,前端找了一会问题发现前端并没有做任何事情,并且说之前无状态token管理的时候,并不会出现这种情况,我就知道可能是我做了token状态导致的。
通过百度得知,之所以出现这个弹窗,是因为在响应的请求头出现了

只要把响应hear中的www-authenticate去掉即可。

查了一下代码,我并没有主动的去设置这个请求头,我就猜想应该 shiro框架自动帮我添加的。于是跟踪一下代码。


看到了在,sendChallenge的进行了添加响应头。于是进行如下改进

由于我们项目是前后端分离项目,请求到后端的接口都是X-Requested-With 形式的。
成功解决。
博主新推出的gitee免费开源项目(商城+APP+小程序+H5),有兴趣的小伙伴可以了解一下。