Почему Facebook JavaScript SDK не устанавливает файлы cookie? - PullRequest
7 голосов
/ 16 июля 2010

У меня проблема с тем, что SDK Facebook JavaScript не устанавливает файлы cookie на некоторых компьютерах, поэтому моя проверка бэкэнда не удалась при попытке проверить файл cookie с использованием секретного значения моего приложения.

У меня есть демонстрационное приложение ; важные файлы:

Клиент использует API JavaScript Facebook для входа в систему и получения его данных, а затем публикует их на моем сервере. Сервер отправляет обратно fbs_APPID, который затем отображает клиент. На некоторых машинах Windows (во всех браузерах) сервер не получает ожидаемый файл cookie. Что мешает Facebook установить cookie и как мне его исправить?

Демонстрационное приложение находится в Sinatra, но наше производственное приложение, в котором мы обнаружили ошибку, это Rails, если это имеет значение.

Ответы [ 3 ]

1 голос
/ 30 декабря 2011

Параметр cookie, к сожалению, не настолько надежен ... лично я предпочитаю получать подписанный запрос javascript sdk, отправлять его в бэкэнд как post-var, а затем декодировать этот подписанный запрос там для проверки вызова..

Таким образом, он также будет работать в сафари:)

ура!

1 голос
/ 26 февраля 2011

взгляните на код инициализации JS:

<script>
  FB.init({
    appId  : 'YOUR APP ID',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });
</script>

Включили ли вы cookie-файл, чтобы получить поддержку cookie-файлов?Также убедитесь, что в вашем браузере отключены файлы cookie.

0 голосов
/ 03 марта 2011

Я не знаю точно, что происходит, но я думаю, что это проблема Facebook, а не проблема с вашим приложением. То же самое происходило со мной, и затем это «волшебным образом» начало работать.

См. Почему проверка подлинности Facebook JavaScript не работает на конкретном компьютере?

Полагаю, это как-то связано с кэшированием Facebook на CDN.

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