socket.io は、ミドルウェア機能を持たない単一のグローバル認証方法をサポートしています。Express.io と Passport.socketio の両方が、ロジックの注入ポイントとしてこの機能に依存しています。
express.io はエクスプレス セッションをリクエストに添付し、passport.socketio はインフレートされたユーザー オブジェクトを添付します。2 つの機能をエレガントに組み合わせるにはどうすればよいですか?
socket.io は、ミドルウェア機能を持たない単一のグローバル認証方法をサポートしています。Express.io と Passport.socketio の両方が、ロジックの注入ポイントとしてこの機能に依存しています。
express.io はエクスプレス セッションをリクエストに添付し、passport.socketio はインフレートされたユーザー オブジェクトを添付します。2 つの機能をエレガントに組み合わせるにはどうすればよいですか?
私が見つけた唯一の方法は、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));
});
これは私にとってはうまくいきますが、「承認」登録の順序と結びついています。より良いアイデアはありますか?