在一个后台管理系统中,对于一个权限变更的理想处理解决方案是怎样的?

问题描述

举个例子来说,一个用户登录到后台管理系统后,根据后端返回的权限生成动态路由,然后开始访问系统,用户登出后 resetRoutes,其他用户登录后重新去请求权限
但是如何处理改用户登录情况下,该用户的权限被其他用户所更改?

问题出现的环境背景及自己尝试过哪些方法

1、目前解决方案是后端在用户登出账户前,后端还不对当前用户的权限做限制,登出后,重新登录时,再用新的权限限制用户

2、同事建议是实时变更,前端通过 websocket 监听账户权限是否被人修改,websocket拿到变更的消息后,重置权限

个人想问下一个企业后台系统对于登录状态下权限变更的理应是如何处理的?

你期待的结果是什么?实际看到的错误信息又是什么?


回答:

没什么理想方案,只是在可用性、可靠性、开发维护成本之间取一个平衡。

我觉得 ws 方案没必要,浪费时间。简单提供几个思路:

  1. 心跳脚本。每隔一段时间请求一次权限。
  2. 附加到其它请求里。如果权限变化,就在任意一次请求时返回新状态。
  3. 完全不变更,除非主动刷新,或者登出再登录。
  4. 401、403 就强制退出。


回答:

就算用户每次操作前都去获取一下当前的权限列表,这对于管理后台来说也不是不能接受的呀。

实在不行还可以加一层缓存,更新权限后把缓存删掉。


回答:

账户权限被变更后,后端强制注销会话,前端提示要求重新登录
这个逻辑和 账户修改密码 差不多


回答:

后端应该在接口侧加上权限校验,每次请求接口,接口都去校验权限。

虽然用户在前端的权限用的是修改之前的能看到修改前的菜单,但请求菜单下的接口时,接口会报无权限,这时候提示用户,让用户去刷新页面或者有个重置权限按钮引导用户去点击。

以上是 在一个后台管理系统中,对于一个权限变更的理想处理解决方案是怎样的? 的全部内容, 来源链接: utcz.com/p/933354.html

回到顶部