首页 > 其他分享 >后台管理系统权限管理

后台管理系统权限管理

时间:2023-08-11 17:45:37浏览次数:32  
标签:登录 管理系统 用户 token 按钮 后台 权限 页面

原文链接:https://blog.csdn.net/qq_43803757/article/details/126611216

权限管理:

  你可以在后台通过一个tree控件或者其他展示形式给每一个页面动态配置权限,之后将这份路由表存储到后端。当用户登录后得到用户角色,前端根据roles去向后端请求可访问的路由表,从而动态生成可访问页面,之后就是router.addRoute动态挂载到router上。同样原理,登录时把按钮权限数据也返回给前端,在对应的页面进行按钮的权限控制。

前端权限的意义:

  1.降低非法操作的可能性

  2.尽可能的排除不必要的请求,减少服务器压力

  3.提高用户体验

前端权限控制思路

  1.菜单控制(管理系统的侧边栏)

  在登录请求中,会得到权限数据。当然,这个需要后台返回数据的支持,前端根据权限数据,展示对应的菜单,才能查看相关的页面。

  2.界面的控制

  如果用户没有登录,手动在地址栏敲入管理界面的地址,则需要跳转到登录页面。

  如果用户已经登录,手动输入非权限内的地址,则需要跳转到404页面。

  3.按钮的控制

  在某个菜单的界面中,还得根据权限数据,展示出可进行操作的按钮,比如新增、删除、修改、编辑。

  4.请求和响应的控制

  如果用户通过非常规操作,比如通过调试工具将某些禁用的按钮变成启用状态,此时发出的请求,也应该被前端拦截。

后台管理系统的权限管理

  【菜单控制】登录后,获取到路由信息,并保存在vuex中,或保存在sessionStorage中

1.登录后刷新页面菜单栏消失,为什么,怎么解决?

  因为登录过后重新加载时,vuex也被刷新,vuex初始值为[],所以菜单栏消失。解决方法:保存在sessionStorage中一份,刷新后,取出重新注册路由信息。

  【界面控制】正常的逻辑是通过登录界面,登录后跳转到管理平台页面。如果用户直接输入页面地址跳转,那么在哪个时机判断用户是否登录?

1.如何判断用户是否登录

  sessionStorage.getItem('token');判断有token就是已登录,没有就是未登录。

2.什么时机判断

  在路由导航全局守卫中router.beforeEach((to,from,next)=>{此处判断})

3.登录后输入一个不属于当前角色的路由地址,怎样阻止

    路由是根据接口返回数据动态注册的,没权限的路由不会被注册

  【按钮控制】有些角色虽然可以看到页面,但不允许操作界面上的一些按钮,此时我们使用自定义指令实现。

  在用户登录时,接口返回当前用户的所拥有的按钮权限列表。新建一个自定义指令判断当前按钮是否包含在此列表中,如果在,则展示。不在则删除这个按钮元素。

  【请求和响应的控制】

请求的控制:除登录之外的每次请求,都要带token,这样服务器才能鉴别你的身份。

axios.interceptors.request.use(function(req){

  let token = session.getItem('token')

  if(token){

    req.headers['token'] = token

  }

  ......

})

响应控制:得到服务器返回的状态码,如果token超时,则强制跳转到登录页面

axios.interceptors.response.use(function(res){ 在此处判断 })

 

 

  

 

标签:登录,管理系统,用户,token,按钮,后台,权限,页面
From: https://www.cnblogs.com/AliceMa/p/17623599.html

相关文章

  • 微软ADRMS权限服务批量加密解密工具,需要可加V:Aixi9837
    ADRMS是一种信息保护技术,可帮助保护数字信息免遭未经授权的使用。通过启用权限的应用程序,内容所有者将能够定义可以对内容进行打开、修改、打印、转发或执行其他操作的人员。该工具可以实现Word、Excel、PowerPoint不同版本文件的加解密处理。支持在原权限基础上增加权限,支持自......
  • C/C++住院病人管理系统[2023-08-11]
    C/C++住院病人管理系统[2023-08-11]22、住院病人管理系统(难度等级8)使用C或C++,选择一种计算机编程软件和数据库管理系统来实现一个住院病人管理系统。系统需要实现的功能如下:(1)添加、删除和修改病人信息:向系统中添加、删除和修改仓库信息,信息包括(住院号、姓名、年龄、住院时间、......
  • 基于c#的学生宿舍信息管理系统的设计与实现
    随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发达,学生宿舍信息管理系统的资讯信息通过网络进行信息管理掀起了热潮,所以针对学生宿舍信息管理......
  • 微信技术分享:揭秘微信后台安全特征数据仓库的架构设计
    本文由腾讯技术工程师remyliu分享,原题“微信万亿数据仓库架构设计与实现”,本文收录时有内容修订和重新排版。1、引言没有足够的特征数据,安全策略将是“无根之木,无源之水”。微信的安全数据特征仓库应运而生,并成为整个安全业务的特征数据存储中心,每天服务了万亿级的特征数据读......
  • AES加密 flutter java后台用的 AES/CBC/PKCS5Padding
     可测试AES是否正确的网址https://www.toolhelper.cn/SymmetricEncryption/AES java后台代码如下publicstaticStringencrypt(StringclearText,Stringkey,Stringiv){byte[]result=null;try{byte[]key_bytes=toByte(MD5Util......
  • 操作过滤器—MVC中使用操作过滤器实现JWT权限认证
    前言上一篇文章分享了授权过滤器实现JWT进行鉴权,文章链接:授权过滤器—MVC中使用授权过滤器实现JWT权限认证,接下来将用操作过滤器实现昨天的JWT鉴权。一、什么是操作过滤器?​与授权过滤器大部分一样,只是执行的时机和继承的接口有所不同。操作过滤器是在Action执行的前和后进......
  • 为ping添加时间戳后台运行实时输出保存日志
    前言ping命令是一种比较好用的网络诊断工具,常用来验证链路问题,例如pingtraceroutemtr都使用的“ICMP”包来测试Internet两点之间的网络连接状况。生产环境中,网络是否稳定(网络时延)是一个很重要的指标.为了方便检查网络时延的大小,我们可以通过ping命令实现长时间的......
  • 使用eNSP,VMware搭建网络平台,Linux中通过Docker搭建应用管理系统,在eNSP中的主机里可以
    课程设计要求拓扑图部署过程总结1.课程设计要求使用eNSP,VMware搭建网络平台,Linux中通过Docker搭建应用管理系统,在eNSP中的主机里可以访问。2.拓扑图![](C:\Users\31223\Pictures\Screenshots\屏幕截图2023-08-10133154.png)设备:云,主机(client机)3.部署过程实验1:docke......
  • postgresql权限
    ostgresql权限详解角色前言PostgreSQL使用角色的概念管理数据库访问权限。根据角色的设置方式,可以将角色视为数据库用户或数据库用户组。角色可以拥有数据库对象(例如,表和函数),并可以将对这些对象的权限分配给其他角色,以控制谁有权访问哪些对象。此外,还可以将角色的成员资格授予......
  • Axure通用电商后台管理系高保真交互模板原型图附元件库4种后台模板风格
    Axure通用电商后台管理交互模板原型图附元件库4种后台模板风格,原型中使用4种不同的布局框架,你可以根据自己的需求,去选中对应的菜单排版布局。另外,原型图中使用了较多的交互元件、母版、动态面板,基本还原了真实项目中的交互效果。是一套标准化的后台模板。Axure电商后台管理系高......