1

socket.io は、ミドルウェア機能を持たない単一のグローバル認証方法をサポートしています。Express.io と Passport.socketio の両方が、ロジックの注入ポイントとしてこの機能に依存しています。

express.io はエクスプレス セッションをリクエストに添付し、passport.socketio はインフレートされたユーザー オブジェクトを添付します。2 つの機能をエレガントに組み合わせるにはどうすればよいですか?

4

1 に答える 1

0

私が見つけた唯一の方法は、express.io の認証コールバックを socket.io から取得し、passport.socketio の成功コールバックに配線することです。

    app.io.configure(function() {
        var expressAuth = app.io.get('authorization');
        var sessionConfig = {
            ...
            success : expressAuth  // callback on success
        };
        app.io.set('authorization', passportSocketIo.authorize(sessionConfig));
    });

これは私にとってはうまくいきますが、「承認」登録の順序と結びついています。より良いアイデアはありますか?

于 2014-02-01T23:38:09.217 に答える