前端菜单权限控制该怎么写好一些。

前端菜单权限控制,
服务端发送有权限的菜单给我,
前端怎么处理好一点?
目前采用刷新一次页面就重新查找一下权限,
无权限的菜单隐藏。
总感觉不是很好。
请教有没有较好的方案

阅读 6.1k
5 个回答
  1. 只在登录之后,请求后端给符合权限的菜单列表,该请求只在登录后执行一次。
    然后存在本地的localStorage里,页面展示的菜单数据,都从这里取。
  2. 至于只执行一次的判断,简单些的可以是这样:登陆后保存登录态进localStorage,判断有登录态并且有菜单时,则不发送获取菜单的请求。
  3. 登出时,把登录态和菜单都从localStorage中清除。
  4. 还有种特殊情况。当用户已经登录后,向管理员提出申请,要求再加一个菜单。

    简单的做法:由管理员修改权限后,告知用户退出账户,重新登录。

    更好的做法:后端接口在得知菜单权限被修改之后,告知前端需要让用户登出。这是一个全局判断,也就是每个接口都会走这个判断。可以定义一个code码,前端也做一个全局处理code码的处理,接受到这个code码,则执行登出操作。

前端菜单权限控制最好采用刷新一次页面就重新查找一下权限,原因是权限是可配置的,随时都有可能发生变化,采用缓存数据等方法都不合理,像阿里云控制台也是每次刷新重新拉取菜单的!

使用sessionStorage把权限状态存储在会话中,每次打开的时候先读取以下sessionStorage存的内容,再决定如何渲染

菜单在后端配置,登录的时候返回给你。
把权限交给后端处理。
前端认为后端返回的数据都合法。

后台发送菜单id,前台在菜单字典中把需要展示的菜单拿出来

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题