1

Expressでnode.jsを使用する。この質問は、問題のExpressサブコンポーネントであるため、Connectにも関係します。

socket.ioを介してクライアントから署名されたCookieを受け取ります。次に、この形式の値を取得します。

s:sessionID.signature

現在、これを検証するには、cookie-signatureモジュールを手動で要求し、そのunsignメソッドを使用する必要がありました。これにより、この文字列からs:を.slice(2)する必要があり、ぎこちなく感じます。

これには便利な方法がありますか?私は次のようなことができるはずだと感じています。

mySessionID = express.unsignCookie(thisCookie、forThisSessionIDKey、withThisSecret);

しかし、そのような方法は存在しません...私は何かが欠けていますか?

ああ、ところで、socket.ioにいるため、res / reqにアクセスできません...そのため、最初にクライアントのCookieからセッションIDを渡す必要があります...

4

1 に答える 1

0

これが私が最終的に見つけた解決策でした。socket.jsの内部:

var parseSignedCookie = connect.utils.parseSignedCookie;

...

socket.on('taste:cookie', function (data, callback) {
   var sid = data.sid;
   sid = parseSignedCookie(sid['connect.sid'], "mySecret");
于 2013-08-17T04:18:28.547 に答える