Почему бэкэнд Facebook возвращает 0 в качестве идентификатора пользователя при аутентификации из плагина WordPress? - PullRequest
0 голосов
/ 19 января 2012

спасибо за чтение! Вот что я делаю.

Я пишу плагин для WordPress, который использует PHP SDK (последняя версия 3.1.1), которую Facebook предоставляет . Мое приложение зарегистрировано в Facebook как веб-сайт, поскольку оно действует как веб-сайт, даже если оно встроено в WordPress.

Этот SDK поставляется с example.php, который очень прост и легок для понимания. Если я положу этот файл на моем сервере, он просто работает. Я убедился, что файл сертификата и файлы SDK находятся в нужном месте и доступны сценарию.

Однако, если я сделаю то же самое из плагина WordPress (со страницы администрирования плагина), бэкэнд Facebook не вернет идентификатор пользователя, а вместо этого всегда вернет 0. Проблема с возвратом 0 в FB довольно распространена, но причины этого, похоже, сильно различаются.

Я должен отметить, что такое поведение не всегда было таким. Это началось всего несколько недель назад. Я подозреваю, что бэкэнд FB каким-то образом проверяет наличие непрямых вызовов API и что вызов его из плагина WordPress, похоже, каким-то образом нарушает правила аутентификации FB (проблема CSRF?). Но я не уверен.

Кто-нибудь знает, что здесь происходит?

1 Ответ

0 голосов
/ 19 января 2012

Вот мое предположение:

Facebook не сможет получить доступ к бэкенду вашего блога WordPress, поскольку он требует аутентификации. Поэтому код example.php не будет виден ему из админ-панели WordPress.

При подаче на сервер необработанных элементов управления доступом нет, и Facebook может получить доступ к странице.

Если это так, я бы предложил превратить его в плагин без прав администратора, возможно, добавив правило перезаписи с использованием WP_Rewrite class .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...