여러 브라우저 Window/Page에 socket.io id를 사용하려고합니다. everyauth을 사용하는 SNS-auth-process이고 프로젝트는 express을 기반으로합니다. socket.io 연결을 유지socket.io의 새로운 쿠키 값이 작동하지 않습니까?
전체 아약스 메인 페이지 :
여기 내 프로젝트의 디자인입니다. 다시로드하지 않고 리디렉션을하지 않습니다.
사용자가 일부 SNS 계정을 통해 로그인을 시도하면 팝업 창이 열리고 모든auth 및 SNS Auth가 관리합니다. 팝업 창 안에는 많은 수의 리디렉션이 발생하지만 기본 창은 지속적이므로 socket.io 연결이 유지됩니다.
마지막으로 성공적인 인증 후에 모든auth는 팝업 창에서 'authdone.html'을 리디렉션합니다.
브라우저에서이 팝업 창이 더 이상 유용하지 않으므로 window.close();
성공적인 로그인 정보는 everyauth에서 얻을 수 있지만 필자가하고자하는 것은 세션 관리를 통해 명시 적 프레임 워크로 세션 관리가 정확히 필요하지 않기 때문에 제 경우 쿠키가 더 중요합니다. socket.IO.
app.get('*',
function (req, res)
{
console.log("----------get------------");
console.log(req.url);
if (req.url == '/public/authdone.html')
{
console.log("----------get /public/authdone.html------------");
console.log(req.cookies);
// express(connect) sessionID(sid) cookie available here.
//{ 'connect.sid': '2DLlayNx90wtTsyeq5w83N9g.Kc1ZFd8I7omf6u4fk4FFyKAt4dP1V6IufSf1ZtRudVI' }
}
onreq(req, res);
});
현재, 내가 방문 페이지 (/public/authdone.html)로 리디렉션 팝업 창에 쿠키를 통해 명시 적 sessionID와를 얻기 위해 관리하지만,이 충분하지 않습니다. 또한 쿠키에 socket.IO 지향 ID를 가져와야합니다.
사실, 여기에 혼란스러워하고 질문했습니다. Adding a cookie value on Socket.IO
감사 웨스, 나는 약간 아래 (내 경우, 일부 소켓 클라이언트 ID에) 새로운 쿠키 값을 추가 할 수있는 방법을 찾을 :이 블록에서
io.configure(function()
{
io.set('authorization', function (handshake, callback)
{
if (handshake.headers.cookie)
{
var cookie = handshake.headers.cookie;
var newS = ";"
+ "socketClientID" + "="
+ "999999999999999";// eventually randomize for every client
cookie += newS;
console.log("=========================================");
console.log(cookie);
} else
{
return callback('Cookie not found', false);
}
callback(null, true);
});
});
을, 나는 쿠키 값을 추가 로 "socketClientID = 999999999999999"
그래서 CONSOLE.LOG를 통해 현재의 쿠키 출력의 지금까지
connect.sid=fc2iTJW3ETD7nIyxI5ZwpayK.S0qGhp1Ryw7Msg2r03yB6g822qVZIZTbZyWUSpQL0aU;
socketClientID=999999999999999
입니다 좋은 오, 그러나, everyauth 리디렉션 페이지, 에 나는 아직도
가 는----------get /public/authdone.html------------
{ 'connect.sid': 'fc2iTJW3ETD7nIyxI5ZwpayK.S0qGhp1Ryw7Msg2r03yB6g822qVZIZTbZyWUSpQL0aU' }
가 socket.IO 핸드 셰이크 단계에
에만 쿠키를 통해 얻을 수 sessionID와 (connect.sid)을 표현, 추가 된 ClientID 쿠키 값이 아닌 수 반영.
정말 도움이 필요합니다. 감사.