2013-10-24 1 views
0

나는 내 세션과 함께 정말 이상한 중간에있다.왜 sid는 socket.io를 사용하여 쿠키를 구문 분석하고 express를 사용하여 req.session.id의 쿠키를 구할 수 있습니까?

나는 주간에만 작동했으며 SessionStore (connect-mongo)에서 세션을 가져 오려고 할 때 undefined 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! 
    }); 
}); 

UPDATE : 문제 않습니다 내가 req.session.id에서 얻은 sid이고 그 중 하나는 SessionStore에서 가져온 것입니다! 내가 req.session.id에서 얻은 sid로 SessionStrore.get()을 호출하면 모든 것이 잘 작동합니다!

이렇게하면 어떻게 2 개의 다른 세션을 가질 수 있습니까?

답변

0

알겠습니다. 알 겠어요!

내 클라이언트 코드에 http://127.0.0.1이라는 URL을 사용하여 로컬로 작업 했으므로 브라우저에 soket.io와 http://localhost을 연결하여 교차 출처의 리소스 공유 문제를 만듭니다.

난 그냥 http://localhost 모든 것을 변경하고 잘 작동합니다!

관련 문제