2013-02-11 1 views
-2

Я использую Facebook login dialogue для входа на мой сайт (с PHP SDK), но он всегда терпит неудачу в первый раз, когда новый пользователь авторизует приложение и преуспевает во второй раз, когда они пытаются.Ошибка CSRF из-за отсутствия параметра «состояние» при перенаправлении после авторизации входа в систему

Я нахожу, что параметр state не передается обратно ко мне в URL перенаправления, когда пользователь разрешает мое приложение, которое вызывает проверку CSRF сбоя в моем приложении (в getCode() в SDK). Для чего он стоит, параметр code включен.

Однако, если они следуют за диалоговой ссылкой второй раз, он работает как ожидалось - не требуется дальнейший авторизационный щелчок, а URL-адрес перенаправления правильный, с параметрами state и code.

Так что мой вопрос:

Как я могу узнать, что является причиной state, отсутствуют перенаправление после авторизации?

Для справки, мой диалог ссылка выглядит следующим образом:

https://www.facebook.com/dialog/oauth?client_id=MY_CLIENT_ID&redirect_uri=http%3A%2F%2Fwww.mysite.com%2Fconnect&state=4f246904818d682a742c59cbbced829c&scope=email%2Cuser_likes 
+1

https://developers.facebook.com/bugs/587975411230466 - в настоящее время главная ошибка в отслеживании ошибок Facebook – Igy

+0

А, спасибо @Igy. Добавьте это как ответ, и я соглашусь. –

+0

Кроме того, WTF @ за закрытым голосованием –

ответ