素材牛VIP会员
前端菜单权限控制该怎么写好一些。
 Sm***ty  分类:JavaScript  人气:1326  回帖:5  发布于6年前 收藏

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

讨论这个帖子(5)垃圾回帖将一律封号处理……

Lv1 新人
冷***知 职业无 6年前#1

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

Lv6 码匠
Ga***er 软件测试工程师 6年前#2

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

Lv5 码农
sh***ao 职业无 6年前#3

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

Lv2 入门
xi***iu JS工程师 6年前#4

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

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

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

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

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取