私は 2 つの可能性に遭遇しましたが、websocket を完全に確立する前にチェックを実行するソリューションを好みます。
var express = require("express.io");
var app = express().http().io();
app.use(express.json());
app.use(express.cookieParser());
app.use(express.session({secret: process.env.COOKIESECRET}));
オプション 1: Express セッション オブジェクトを取得する方法
更新: Express.io は、Express セッションを Socket.io で使用できるようにする独自の「承認」機能を登録するため、これは機能しない可能性があります。
app.io.configure(function() {
app.io.set("authorize", function(handshake, authorize) {
// Cookie is available...?
//handshake.headers.cookie
});
});
オプション 2: Express セッションを取得するのは簡単ですが、接続は既に確立されています。
app.io.route("test", function(req) {
if(!req.session.IsAuthorized) {
req.io.disconnect();
}
});