socket.io的可选autetification

时间:2015-05-13 17:30:17

标签: socket.io jwt

我使用socket.io-jwt库,代码如下:

socketio.use(require('socketio-jwt').authorize({
  secret: config.secrets.session,
  handshake: true
}));

但这限制了未经身份验证。我需要身份验证是可选的,并且如果您已登录,则可以检查。

有一些图书馆吗?

1 个答案:

答案 0 :(得分:0)

我通过将fail选项传递给authorize函数解决了这个问题。您应该致电accept(null)以声明没有错误。

socketio.use(require('socketio-jwt').authorize({
    secret: config.secrets.session,
    handshake: true,
    fail: function (error, data, accept) {
      if (data.request) {
        accept(null);
      } else {
        accept(null, false);
      }
    }
  }));