3
나는 express와 socket.io로 일하고있다. socket.io에서 액세스하고자하는 변수가 req.session
입니다. 내가 socket.io and session에 대한이 게시물을 읽고 나는 매우 req.session
변수를 얻을 수있는 방법에 관해서는 매우 혼란 스럽다.socket.io에서 req.session 변수에 액세스하는 방법은 무엇입니까?
나는 express와 socket.io로 일하고있다. socket.io에서 액세스하고자하는 변수가 req.session
입니다. 내가 socket.io and session에 대한이 게시물을 읽고 나는 매우 req.session
변수를 얻을 수있는 방법에 관해서는 매우 혼란 스럽다.socket.io에서 req.session 변수에 액세스하는 방법은 무엇입니까?
이 작업을 수행하는 한 가지 방법은 소켓 내부에서 세션 저장소를 사용하는 것입니다. 세션 저장소는 모든 세션 변수를 갖습니다. 이 방법으로 인증을 수행합니다 (쿠키 ID와 데이터베이스의 세션 ID 비교).
io.set('authorization', function (data, accept) {
if (data.headers.cookie) {
data.cookie = utils.parseCookie(data.headers.cookie);
data.sessionID = data.cookie['connect.sid'].split('.')[0].substring(2);
sessionStore.get(data.sessionID, function (err, session) {
// now you have all session variables
});
}
});
이전에 언급 한 대답은 이전 버전의 socket.io에 대한 것입니다. 아마도 [이 답변] (http://stackoverflow.com/questions/6397574/how-to-access-session-in-express-outside-of-the-req?rq=1) 대신에보십시오. socket.io를 사용하지 않기 때문에 개인적으로 여전히 적용되는지 말할 수 없습니다. 또한 [socket.io wiki] (https://github.com/LearnBoost/socket.io/wiki/Authorizing)에서 인증에 대한 내용을 읽을 수 있습니다. – numbers1311407
감사합니다. @ numbers1311407 – ThomasReggi