0

私は自分のセッションで本当に奇妙なことをしている最中です。

SessionStoreからセッションを取得しようとすると、何週間も前から機能し、今日だけでしconnect-mongoundefined variables

私は良いsidを送信します。これは数週間このように機能し、.から保存された変数にアクセスできるため、セッションシステムが機能しますreq.session.

だから私はおそらく2つの異なるセッションがあるのではないかと思っていました.sidを見つける方法はありreq.sessionますか?

正しいかどうかはわかりませんが、取得したsidとは異なるreq.session.idを持っています

コードは次のとおりです。

function parseSessionCookie(cookie, sid, secret) {
  var cookies = require('express/node_modules/cookie').parse(cookie)
, parsed = require('express/node_modules/connect/lib/utils').parseSignedCookies(cookies, secret)
;
  return parsed[sid] || null;
}
io.set('authorization', function(data, accept) {
    var sid = parseSessionCookie(data.headers.cookie, 'connect.sid', 'secret');
    SessionStore.get(sid, function(err, session) {
       //err and session are undefined!
    });
});

更新: 問題は、sid私が取得しreq.session.idたものとSessionStoreから取得したものが異なることです! SessionStrore.get()から取得した sid で呼び出すとreq.session.id、すべて正常に動作します。

では、このような 2 つの異なるセッションをどのように行うことができるのでしょうか?

4

1 に答える 1

0

わかったよ !

問題は、クライアント コードの URL を使用してhttp://127.0.0.1soket.io とhttp://localhostブラウザに接続し、ローカルで作業したため、クロスオリジン リソース共有の問題が発生したことです。

すべてを変更しただけhttp://localhostで、正常に動作します。

于 2013-10-24T13:36:11.747 に答える