RBAC

67 阅读2分钟

RBAC是什么?

RBAC根据权限的不同访问不同的页面。权限的分配和管理是基于角色进行的。 RBAC 模型包含以下几个核心概念:

  1. 用户(User):用户可以关联到一个或多个角色。
  2. 角色(Role):通过角色来确定其拥有的权限。
  3. 权限(Permission):权限指定了对系统资源进行操作的能力。

基本原则是将权限与角色关联,然后再将角色授权给用户

WebSocket 是什么

  • WebSocket 是一种网络传输协议
  • WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。客户端和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。

前端通过send方法向服务器端发送请求 通过 onmessage监听服务器端传递过来的数据

后端 通过onmessage来监听传递过来的数据 通过readyState来判断是否链接成功 通过send发送数据

//引入WebSocket
const WebSocket = require('ws')
//进行new实例化  服务器监听的端口号为 3001
const ws =new WebSocket.Server({port:'3001'})
// ws.on添加事件监听
ws.on('connection',(ws)=>{
  // ws当前实例
  //msg传递过来的参数
  ws.on('message',(msg)=>{
    // console.log(msg,'msg');
    // <Buffer 31 32 33>
    // console.log(ws.readyState,'ws');
     // readyState 链接状态
    // 0 正在链接
    // 1 已经完成链接
    // 2 链接正在关闭
    // 3 链接已关闭
    if(ws.readyState==1){
     
      ws.send('666')
    }
  })
})

跨域的解决方案

1.JSONP

jsonp的原理就是利用<script>标签没有跨域限制,通过<script>标签src属性,发送带有callback参数的GET请求,服务端将接口返回数据拼凑到callback函数中,返回给浏览器,浏览器解析执行,从而前端拿到callback函数返回的数据。

 <script>
    var script = document.createElement('script');
    script.type = 'text/javascript';
 
    // 传参一个回调函数名给后端,方便后端返回时执行这个在前端定义的回调函数
    script.src = 'http://www.domain2.com:8080/login?user=admin&callback=handleCallback';
    document.head.appendChild(script);
 
    // 回调执行函数
    function handleCallback(res) {
        alert(JSON.stringify(res));
    }
 </script>

服务端返回如下(返回时即执行全局函数):

handleCallback({"success": true, "user": "admin"})

JSONP的缺点:只能发送get一种请求。

2、跨域资源共享(CORS)

CORS是一个W3C标准 它允许浏览器向跨源服务器,发出XMLHttpRequest请求 CORS需要浏览器和服务器同时支持。

3. WebSocket

WebSocket:使用 WebSocket 协议进行通信,WebSocket 不受同源策略限制,可以在不同域名之间建立双向通信。