0

https://github.com/auth0/socketio-jwtの例に従って、認証の失敗を発生させることができませんでした。

このライブラリを使用して認証エラーをどのように処理および構成することになっていますか? ソースコードでスローするはずですが、UnauthorizedErrorそれをトリガーできないようです。

サーバ側

  io
    .on('connection', socketioJwt.authorize({
      secret: 'test',
      timeout: 7000
    }))
    .on('authenticated', (socket) => {
      console.log('connected user: ' + socket.decoded_token.name);
    });

クライアント側

  socket.on('connect', function () {
    socket.emit('authenticate', {token: 'badtoken'}); //send the jwt
  });

  socket.on("error", function(error) {
    // this never fires
    if (error.type == "UnauthorizedError" || error.code == "invalid_token") {
      alert("User's token has expired");
    }
  });

.on('error, function(error))サーバー コードにもを追加する必要がありますか?

4

1 に答える 1

1

jwt のソース コードを見ると、実際には「エラー」ではなく「無許可」を発行しています。への変更

 socket.on("unauthorized", function(error) {
    // this should now fire
    if (error.data.type == "UnauthorizedError" || error.data.code == "invalid_token") {
      alert("User's token has expired");
    }
  });

ドキュメントと例のこのバグは、こちらでも報告されています。

于 2015-12-17T18:12:16.123 に答える