質問

クッキーにユーザー情報を設定し、接続でアクセスできるようにしたいのですが、これは可能ですか?

役に立ちましたか?

解決

client.request.headers.cookie Cookieは常に最後のログインされているユーザーを指しているため、レース条件につながります。

参照してください: socket.io認証.

他のヒント

socket.io 0.8.7を使用して、次のようにリクエストヘッダーにアクセスできます。

socket.handshake.headers

これについては、詳細を確認できます https://github.com/learnboost/socket.io/wiki/authorizing

私はそれを手に入れました、これはうまくいきます:

client.request.headers.cookie

Engine.ioソースコードを検討した後、以下を使用してCookieを設定できます。

var io = require('socket.io')(3000);

io.use((socket, next) => {
    socket.conn.transport.once('headers', (headers) => {

        headers['set-cookie'] ="sess=test;"; });

    next();
});

このコードは、SID Cookieを設定するEngine.ioコードと競合する可能性があります。 HTTP/1.1とHTTP/2ヘッダーの両方がケース非感受性であるため、Engine.ioはヘッダーオブジェクトで「セットクッキー」を使用して、小文字オブジェクト名「セットクッキー」を追加すると、この問題が回避されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top