내 node.js 응용 프로그램에 express/socket.io 조합을 사용하고 있습니다. 지금까지 잘 작동합니다. 이제 facebook 사용자 ID와 이메일 ID (사용자가 승인 된 후)을 세션 범위에 저장해야합니다. 나는 많은 옵션이 있고 여기에 조금 잃어 버렸다. .. 내 애플 리케이션에서 대부분의 통신은 socket.io를 통해 이루어진다. 궁극적으로 내가 원하는 것은 클라이언트 측에서 언제든지 사용자 ID와 전자 메일 ID에 액세스하는 것이다.node.js 페이스 북을 사용하는 Express/socket.io 하이브리드 응용 프로그램
답변
권한이 부여 된 후에 쿠키에 이미있는 accessToken을 사용하고 socket.io를 통해 보내고 graph.facebook 또는 자신의 DB를 사용하여 이메일과 ID를 가져 오는 것이 좋습니다. 사용자 ID 및 전자 메일을 저장하는 문제는 세션 도용이 발생할 수 있으므로 안전하지 않을 수 있다는 것입니다.
Facebook에는 도용되지 않도록 자체 보안 전문가가 있습니다. 그걸 써!
이 도움이 될 수 있습니다 :
// Get data from facebok and store it on a var `userData`
// server
socket.on('getUserData', function (callback) {
callback(facebookUserData);
});
// client
socekt.emit('getUserData', function(userData) {
console.log(userData);
});
:
http://criso.github.com/fbgraph/
당신은 아주 기본적인 수준에서 명시
http://expressjs.com/guide.html#session-support
를 통해 세션의 데이터를 저장할 수있는 권한이 부여 된 후
http://criso.github.com/fbgraph를 보았습니다. facebook-js와는 어떻게 다른가요? 현재 나는 그것을 사용하고 그래프 api를 사용하여 읽고 게시 할 수 있습니다. 그러나 YQL이 이것보다 훨씬 좋음을 알았습니다. facebook/twitter/etc가 어떻게 내부적으로 작동하는지 이해할 필요가 없습니다. 어쨌든 내 문제는 간단합니다. 세션 범위에 userID를 저장하려면 어떻게해야합니까? 대부분 나는 socket.io를 사용하고 있습니다 ... "http://socket.io/#how-to-use"에서 예제를 제공했지만 사용 방법을 모르겠습니다. 주로 나는 클라이언트 측에서 필요할 때 userId에 액세스 할 수 있기를 원합니다. – user644745
위의 코드는 여기 코드가 –
으로 아름답 기 때문에 추가되었습니다. 감사합니다. 만약 내가 이것을 올바르게 이해했다면, 1. 클라이언트 쪽에서 "getUserData"를 수신하면 서버 쪽에서 "getUserData"를 보내고 페이스 북 사용자 데이터로 콜백을 실행하고, 결국 "function (userData)"를 실행합니다. 이 내일과 나의 관찰을 업데이 트됩니다. – user644745
이것은 정확하게 내가하고있는 것입니다 .. p 문제는 그것을 세션 범위에 저장하는 방법이었습니다. 아마도 Cris-O의 정보가 도움이 될 것입니다. 마지막 댓글에 감사드립니다. "Facebook은 보안 전문가로서 도용 당하지 않을 것입니다. 사용하십시오!" – user644745
Facebook의 javascript SKD를 실제로 사용하는 경우 accessToken은 이미 쿠키에 저장됩니다. 그래서 걱정할 필요가 없습니다. 모든 인증을 담당하는 [everyauth module] (https://github.com/bnoguchi/everyauth)을 사용할 수도 있습니다. 트위터, 구글, 야후 같은 다른 시스템에서도 사용할 수 있습니다. 그리고 그것은 아주 성숙합니다. –
감사합니다. 당분간 간단한 쿠키를 사용하여 문제가 해결됩니다. 필요한 경우 앞으로 모든 사용권을 사용할 것입니다. – user644745