2012-12-29 3 views
2

socket.io의 authorize 메소드 (자세한 내용은 here)를 사용하여 사용자가 사용자와 관련된 쿠키를 검사하여 내 앱을 사용할 권한이 있는지 확인합니다.cookieSession을 사용하여 socket.io를 사용하여 사용자 인증

위의 블로그 게시물은 꽤 솔직하지만 cookieSessions를 사용하여 쿠키에 세션 데이터를 저장하고 있습니다. 하나의 좋은 질문은 stackoverflow에 있지만 나는 그것을 이해할 수 없다.

쿠키 데이터를 해독하여 세션 데이터에 액세스하는 방법을 알고 싶습니다. 약간의 샘플 코드 :

io.set('authorization', function (data, accept) { 

//Check cookie for session data 

accept(null, true);}); 

즉, socket.io의 cookieSession에 어떻게 액세스 할 수 있습니까?

답변

2

나는 (여권, 그러나 그것은 중요하지 않습니다) 다음을 사용 :

io.set('authorization', function(data, accept) { 
    var getCookieSession = require('./lib/cookie_session'); 
    var session = getCookieSession(data.headers, { 
     key: 'YOUR KEY', 
     secret: 'YOUR SECRET' 
    }); 

    if (session.passport.user) { 
     accept(null, true); 
    } else { 
     accept(null, false); 
    } 
}); 

및 getCookieSession는 다음 모듈 :

var connect = require('connect'); 

var cookieParser = connect.cookieParser; 
var cookieSession = connect.cookieSession; 

module.exports = function(headers, opts) { 
    var key = opts.key || '_session'; 
    var secret = opts.secret || ''; 
    var req = { headers: headers, originalUrl: "/" }; 
    var res = { on: function() {} }; 
    var next = function() {}; 

    cookieParser(secret)(req, res, next); 
    cookieSession({ key: key })(req, res, next); 

    return req.session; 
}; 
+0

나는 오래 전에 이것에 대한 답을 발견했다. 누군가가 매력처럼 작동하는 github에 대한 요지를 만들었습니다. – shash7

관련 문제