前端权限控制思路
1.菜单的控制
- 在登录请求中,会得到权限数据。前端根据权限数据,展示对应的菜单,点击菜单,才能查看相关的界面
我们点击登录按钮,登陆成功之后,后端除了用户的基本信息外,还有token数据,用于前端用户的状态保持,还会返回用户的权限数据 根据这个权限数据渲染不同的菜单。
2.界面的控制 也可以叫路由控制
如果用户没有登录,手动在地址栏敲入管理界面的地址,则需要跳转到登录界面,如果用户已经登录,可是手动敲入非权限内的地址,则需要跳转到404界面
正常的逻辑是通过登录界面,登录成功之后跳转到管理平台界面,但是如果用户直接敲入管理平台的地址,也是可以跳过登录的步骤,所以应该在某个时机判断用户是否登录
3.按钮的控制
在某个菜单的界面中,还得根据权限数据,展示出可进行操作的按钮,比如删除,修改,增加
虽然用户可以看到某些界面了,但是这个界面的一些按钮,该用户可能是没有权限的,因此,我们需要对组件中的一些按钮进行控制,用户不具备权限的按钮就隐藏或者禁用,而这块中,可以把该逻辑放到自定义指令中
4.请求和响应控制
如果用户通过非常规操作,比如通过浏览器调试工具将某些禁用的按钮变成开启状态,此时发的请求,也应该被前端所拦截
除了登录请求都得要带上token,这样服务器才可以鉴别你的身份
如果发出了非权限内的请求,应该直接在前端访问内阻止,虽然这个请求发送到服务器也会被拒绝
得到了服务器返回的状态码401,代表token超时或者被篡改了,此时应该强制跳转到登录界面