2012-01-18 2 views
0

읽어 주셔서 감사합니다! 여기 내가 무슨 일이야.WordPress 플러그인에서 인증 할 때 Facebook 백엔드가 사용자 ID로 0을 반환하는 이유는 무엇입니까?

페이스 북 provides 인 PHP SDK (최신 버전 3.1.1)를 사용하는 WordPress 플러그인을 작성하고 있습니다. 내 애플리케이션은 페이스 북에 웹 사이트로 등록되어 있기 때문에 WordPress에 내장되어 있어도 웹 사이트처럼 작동합니다.

이 SDK는 매우 간단하고 이해하기 쉬운 example.php와 함께 제공됩니다. 이 파일을 서버에 저장하면 작동합니다. 인증서 파일과 SDK 파일이 올바른 위치에 있으며 스크립트로 액세스 할 수 있는지 확인했습니다.

그러나 플러그인의 관리 페이지에서 WordPress 플러그인 내에서 똑같은 작업을 수행하는 경우 Facebook 백엔드는 사용자 ID를 반환하지 않지만 대신 항상 0을 반환합니다. 0을 반환하는 FB의 문제는 매우 일반적이지만 그 이유는 많이 달라집니다.

이 동작이 항상 이와 같지는 않았 음을 언급해야합니다. 몇 주 전에 시작되었습니다. FB 백엔드가 간접적 인 API 호출을 검사하고 WordPress 플러그인 내에서 호출하는 것이 FBs auth 규칙을 어떤 식 으로든 위반하는 것으로 보입니다 (CSRF 문제). 그러나 나는 확실하지 않다.

여기 누가 무슨 일이 일어나는지 실감이 있습니까?

페이스 북이이 인증을 필요로하기 때문에 워드 프레스 블로그의 백엔드에 액세스 할 수 없습니다 :

답변

0

여기에 내 생각이다. 따라서 example.php 코드는 WordPress 관리자 패널에서 볼 수 없습니다.

서버에서 raw로 처리되면 해당 액세스 제어가 없으므로 Facebook에서 페이지에 연결할 수 있습니다.

이 경우 내 제안은 WP_Rewrite class을 사용하는 다시 쓰기 규칙을 추가하여 관리자가 아닌 플러그인으로 바꾸는 것입니다.

+0

답장을 보내 주셔서 감사합니다. 저에게 이상하게 여겨지는 것이 있다면, 왜 2 주 전에 일했을까요? WP 플러그인의 일부인 PHP 스크립트에서 FB를 호출 할 때 FB가 실제로 WP 백엔드에 액세스해야합니까? 기술적으로 나를 설명해 주시겠습니까? 나는 당신이 말한 것처럼이 문제를 해결할 수 있었으면 좋겠지 만 이것을 비 관리자 플러그인으로 바꿀 수는 없습니다. 플러그인의 요점이기 때문에 블로그 소유자를위한 것입니다. – twigmac

+0

사용자 이름으로 로그인하여 패스하면 WordPress는 쿠키 (http://codex.wordpress.org/WordPress_Cookies)를 삭제하여 사용자를 로그인 한 사용자로 인식합니다. WordPress가 단순히 어떤 봇이라도 백엔드에 접근하도록 허락했다면 누구나 설치를 변경하거나 파괴 할 수 있습니다. 페이스 북은 인증되지 않았기 때문에 관리자 페이지를 요청할 때 쿠키가 없으므로 WP는 오류를 발생시킵니다. example.php raw를 제공했을 때 WordPress는 전혀 개입되지 않았습니다. Facebook이 귀하의 서버와 직접 대화했습니다. – buley

+0

자세한 설명을 읽어 주셔서 감사합니다. FB가 인증 프로세스의 일부로 관리자 페이지를 요청해야하므로 이제는 나에게 그럴듯하게 보입니다. 나는 왜 그것이 처음에 효과가 있었는지 궁금해하고있다. 항상 오류를 발생시켜야했으나하지 못했습니다. URL 재 작성으로 해결하려고 노력할 것입니다. 감사합니다. – twigmac

관련 문제