2009-11-24 6 views
0

"facebook connect"로 웹 사이트를 만들고 사용자 이름과 암호로 페이스 북에 로그인하면 페이스 북은 웹 사이트에 세션을 설정합니다. 해당 세션에서 내 애플리케이션 비밀 키를 사용하여 Facebook 북 서명을 생성 하시겠습니까?

이 서명이 유일한 당신과 페이스 북은 알고있다 "응용 프로그램의 비밀", 및 해시 결과 MD5의 데이터를 결합하여 만든

생성 된 "서명"입니다.

나는 그것을 재현 할 수 있고 페이스 북이 만든 하나의 서명과 일치하는지 확인하기 위해 그 서명을 생성하는 데 사용 된 알고리즘이 필요하다.

if($_SESSION['facebookSignature'] == reGeneratedSignature){ 
    // save to database 
}else{ 
    // go away I don't trust you 
} 

이 방법 나는 사용자를 확인 할 수 있고 나는 페이스 북에 불필요한 전화를 걸거나 웹 사이트를 계속 사용하려면 사용자 ALOW 할 필요가 없습니다.

+0

는 기본적으로 필자는이 일을하려고 : http://wiki.developers.facebook.com/index.php/Verifying_The_Signature 을하지만이 사용하는 메신저로서 나를 위해 작동하지 않습니다 에 http : // 개발자 .facebook.com/docs /? u = facebook.jslib-alpha.FB –

답변

0

서명 확인 중 링크가 작동하는 방법이므로 서명이 필요합니다.

FBConnectAuth의 소스 코드를 보시면 원하는대로 작동하고 새로운 FB Connect 쿠키에 적응할 수 있도록 일반용이므로 새로운 JS 라이브러리에 적응할 수 있기를 바랍니다. 도움이

희망,

아담 페이스 북에 의해 생성 된 서명을 재구성

+0

실제로 여기에 필요한 모든 정보가 있습니다. http://wiki.github.com/facebook/connect-js/faq 감사합니다. Adam –

+0

좋아요. FBConnectAuth를 수정하여 새로운 쿠키 형식으로 작동 할 것입니다. Adam –

0

오히려 간단하다. key=value 쌍을 모두 추가 한 다음 개인 키를 추가하고 마지막으로 결과 문자열의 MD5 해시를 계산하면됩니다.

서명 구성 방법에 대한 자세한 내용은 answer에서 확인할 수 있습니다.

Facebook은 싱글 사인온 (Sing Sign-On) 섹션에서 sig here을 재구성하는 방법에 대한 PHP 예제를 제공했습니다.

정확히 동일한 작업을 수행했지만 Ruby 대신 blog post을 작성했습니다.

관련 문제