socket.ioからクッキーにアクセスできますか?
質問
クッキーにユーザー情報を設定し、接続でアクセスできるようにしたいのですが、これは可能ですか?
解決
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はヘッダーオブジェクトで「セットクッキー」を使用して、小文字オブジェクト名「セットクッキー」を追加すると、この問題が回避されます。
所属していません StackOverflow