SpringBoot-Shiro-Vue 前后端分离实现权限认证
思路,前后端分离权限验证与普通Web服务的权限验证有啥不同,其实就一个:前后端变成了只交互数据,展开来说,是后端少了两个对前端的控制:
页面路由
页面DOM
所以针对普通的web服务,需要做出如下修改:
1.路由相关:
1】未验证页面不能直接Shiro跳转,而是返回未登录错误,由前端实现
shiroFilterFactoryBean.setLoginUrl("/unauth");
@RequestMapping("/unauth")
@ResponseBody
public Result unauth(){
Result result = new Result(100);
result.message = "未登录";
return result;
}
2】配置所有URL为不需要登录验证,而由前端根据后端返回的权限数据来路由(别和不需要权限验证混了,只是因为路由不需要后端来做而已,所有需要权限验证的业务逻辑都需要有权限较验)
filterChainDefinitionMap.put("/", "anon");
3】前端需要根据返回的权限数据进行路由配置,具体到Vue使用Vue router的addRoutes动态添加路由
2.DOM相关:前端根据 后端返回的 权限数据 决定 菜单 或 按钮的展示
3.跨域,这个是前后端分离带来的新问题(如果分开部署),后端需要配置允许跨域(添加@CrossOrigin或使用Filter)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。