socket.io/jwt/io.on Autheticate

时间:2019-11-20 19:24:47

标签: node.js reactjs socket.io

我正在使用前端的react通过以下方式连接到我的后端

verify = () => {
    let socket = null;
    socket = io.connect('http://localhost:8080/');
    const message = {
        nome: 'testando',
        message: 'dasuidhjasu'
    }
    socket.emit('testdas',JSON.parse(sessionStorage.getItem('token')), message)
}

没有菜单后端,我调用了函数

  app.set("io", io);

socketRouter.configuration(io,socket);

此处:

const socketController = require ('../controllers/SocketController');
const verify = require('../auth/index');
module.exports = {    
   configuration: (io,socket) => {        
      io.on('connection', (socket) => {
         console.log(socket.id);
      })
   },     
}

我想验证存储在前端存储在会话存储中的jwt

所以我不必验证我调用的每个事件,仅当我连接到网络套接字时才需要验证

我做了类似的事情:

module.exports = {    
   configuration: (io,socket) => {        
      io.on('connection', (socket) => {
         socket.on('test', async (token,message) => {
            const tokenVerify = await verify.authSocket(token);
            if(tokenVerify){
               console.log(message);
               console.log(`Socket id: ${socket.id}`)
               socket.emit('myevent', {message: 'OK'});
            }
         })
      })
   }
}

它奏效了,但是通过这种方式,我认为我必须在每个事件中都做同样的事情,而不仅仅是在一个事件中做

0 个答案:

没有答案