项目背景:后台管理系统,有权限功能,不同用户访问的菜单只能是他们有权限的菜单,菜单是通过后端返回的(有啥权限就返回对应的菜单)。但当用户【通过浏览器输入该用户没有权限的url】时,应该不允许访问成功。
如果用antd pro umi 自带的access去控制是可以的(吧),没试过。
但我们系统没有用access。
如何实现这个功能呢?
最开始准备用history.block去监控,但是只能监控在系统内点击,没法监控在浏览器中输url。
去antdpro交流群请教,最后一位大佬说,应该后端去做这个鉴权,
最后跟后端商量,出一个根据路径检测当前用户是否有该路径菜单权限的接口

这样在用户重新输入url时,就可以控制,让其跳转到404或者403页面。
有一个比较不咋有好的地方是这个地方,每次刷新进入要调几次接口,有没有更好的地方放这个接口。
------------------------------------------------------------------------------
加更:
在menuDataRender里面去监听路由的时候,会导致,我调用退出登录接口后,还会走一遍验证是否有权限的接口,导致拿到的是之前的token,401.
最后:放到了getInitialState里就可以

本文探讨了在后台管理系统中,如何防止未经授权用户访问受限URL,重点讲述了使用Ant Design Pro的access功能、浏览器URL输入监控、后端权限验证接口以及优化位置的选择。最终解决方案是通过后端接口实现权限检查,避免频繁刷新带来的性能问题。
1390

被折叠的 条评论
为什么被折叠?



