Facebook oauth на мобильном сайте Государственный токен CSRF не соответствует предоставленному - PullRequest
1 голос
/ 22 марта 2012

Я создаю приложение Facebook для доступа через мобильное устройство и продолжаю получать после того, как пользователь примет разрешения приложения и вернется к исходному URL:

Маркер состояния CSRF не соответствует предоставленному.*

однако мой redirect_uri - это тот же URL, который отправляет запрос.Я проверил настройки приложения в Facebook, и домен приложения введен правильно.

вот мой код:

<code><?php
require 'facebook/src/facebook.php';

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => 'MY_APP_ID',
  'secret' => 'MY_SECRET',
));

// Get User ID
$user = $facebook->getUser();

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
    $friends = $facebook->api('/me/friends');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
?>
<?php if ($user) { ?>
    <?php echo $user_profile['id']; ?><br />
    <pre><?php print_r($user_profile); ?>
"> App.

Ответы [ 2 ]

0 голосов
/ 23 марта 2012

Я считаю, что это проблема IIS. Я перенес точно такой же код на сервер Linux, и он отлично работал.

0 голосов
/ 22 марта 2012

Это может быть бесполезно, так как я использую сеансы IIS и ASP.NET, но я подозреваю, что вы, возможно, видите те же несоответствия, которые я наблюдал. Я вижу проблемы с IE 6 и некоторыми конкретными мобильными браузерами, особенно UP.Browser, не сохраняющими состояние сеанса при перенаправлениях. В ASP.NET идентификатор сессии обычно хранится в файле cookie браузера, и некоторые из этих мобильных устройств не сохраняют файл cookie. Я вижу, что они получают несколько значений SessionID, выданных в течение одного сеанса. Без постоянного SessionID они теряют способность получить сохраненное значение состояния, и все это рушится.

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