4

nodejs アプリケーションでセッションをセットアップする方法が本当に混乱しています。私は Express + Socksjs を使用していますが、ws 接続を特定のユーザー セッションにバインドする方法がわかりません。

sockjsページでは、承認にCookieを使用しないように言われていますが、ws接続を確立するときにCookieからセッションを送信しない場合(以前にエクスプレスで設定されたセッションのCookie)、その特定のws接続を特定のユーザーにバインドするにはどうすればよいですか?

これらの単純な目標を達成したいと思います: - ユーザー (ログインまたはゲスト) がページにアクセスし、ws 接続を確立します - 接続 ID とセッションのキーと値のペアを redis に保存するので、与えられた ws 接続がどのユーザーに属しているかがわかります

ws 接続を確立した直後に Cookie からセッションを送信できない場合はどうすればよいですか? 必要に応じて、HttpOnly であるため Cookie を使用できず、js から読み取ることができません。

編集:

this google group postは、最初のメッセージで暗号化されたユーザーの詳細を送信することを示唆していますが、それでもそれらの詳細をどこから取得すればよいかわかりません。私はいつもセッションとクッキーを介してそれを行ってきました...

4

2 に答える 2

0

セッションの復元には、ほとんどの場合 Cookie が使用されます。SockJS は Cookie の使用を許可しますが、他のセキュリティ プラクティスなしで生の Cookie を使用するだけでは、少し怖いです。特に、SockJS が別のドメインにあり、Cookie の Origin スコープが不明な場合はなおさらです。

認証にトークン方式を使用することを検討してください。

本当にクッキーを使用する必要がある場合は、これを読んでください。すべての理由がそこにあり、すでに説明されている状況を複製することはしません: https://github.com/sockjs/sockjs-node/pull/29#issuecomment-2733120

于 2014-07-03T12:55:16.857 に答える
0

https://github.com/jfromaniello/passport.socketioを調べることができます。私はそれを使用しましたが、始めるのはかなり簡単です。

于 2013-12-04T01:57:50.543 に答える