Node.js 如何在执行socket.on(';do something';)之前添加身份验证?

Node.js 如何在执行socket.on(';do something';)之前添加身份验证?,node.js,sockets,authentication,socket.io,passport.js,Node.js,Sockets,Authentication,Socket.io,Passport.js,事实上,我想限制用户在登录到Web之前连接到套接字 对于api调用,我可以使用passport.js(session)并执行以下操作,以限制他们在登录之前使用api app.get('/login', checkAuth, (req, res) => { res.status(200).send('done'); }) function checkAuth(req, res, next) { if (req.isAuthenticated()) { return res.

事实上,我想限制用户在登录到Web之前连接到套接字

对于api调用,我可以使用passport.js(session)并执行以下操作,以限制他们在登录之前使用api

app.get('/login', checkAuth, (req, res) => {
  res.status(200).send('done');
})

function checkAuth(req, res, next) {
  if (req.isAuthenticated()) {
    return res.redirect('/')
  }
  next()
}
但是如何在登录之前限制socket.io连接,或者执行类似于上述的(auth)操作

  io.sockets.on('connection', function (socket) {
    socket.on('hi', async data => {
      await socket.join('XP');
    });
  });

检查:@Daniel我以前读过,但我在系统中使用Session。是否有任何库可以执行类似的操作来允许socket.io检查身份验证?这个如何?