不同账号登录系统,如何实现菜单根据权限显示不同的列表

haoxh
  • 91

从前端开发的角度。不同账号登录系统,如何实现菜单根据权限显示不同的列表?不是简单的显示和隐藏,应该是向服务器发起请求,返回相应菜单列表。具体如何实现,请大神指点。

从前端开发的角度。

回复
阅读 10.6k
5 个回答
vuji
  • 841

用户登录-->请求-->服务器接收请求-->用户权限判断-->根据用户权限生成相应菜单数据-->返回数据-->浏览器渲染

补充:前端只能做到显示和隐藏,或者某个菜单不渲染,不管怎么实现都需要后端配合

你说的是基于角色的权限访问控制?把角色和菜单关联起来就可以了。

  1. 使用RBAC模型,自己写权限控制代码

  2. 使用一些权限框架,例如java的shiro

疯狂的爱因斯坦
  • 1.3k

当然可以, 比如你前端用的React和Redux, 那么你就可以在Store中保存一个权限的state, 这个state在用户登陆之后向服务器获取, 然后在需要权限控制的组件中获取权限state,根据里面存储的权限信息判断组件是否显示,或者在菜单列表渲染的时候判断也是一样的。
用其他的框架也是类似的原理,在用户登陆后向服务器获取权限信息,然后在渲染菜单列表的时候判断是否显示。
还有另一种思路, 前端不进行判断,而是在用户登陆后,返回的菜单树里保存了整个菜单的完整信息,如菜单名、点击访问的URL等等,然后用户登陆后,根据后台返回的菜单列表直接渲染,这样做的一个好处的全端和后台数据同步,修改时直接修改数据库而不用前后端同时修改。

宣传栏