Обновление аутентификации приложения - PullRequest
0 голосов
/ 27 ноября 2011

Я пробовал новую аутентификацию, но иногда случается, что при первом доступе приложение обновляется снова и снова.(Я имею в виду, когда файлы cookie не установлены .. в первый раз или, например, после перезапуска браузера)

У меня есть этот код для аутентификации:

require_once './facebook/facebook.php';
$facebook = new Facebook(array(
          'appId'  => $fbconfig['appid'],
          'secret' => $fbconfig['secret'], 
          'fileUpload' => $fbconfig['fileUpload'],
          'cookie' => true,
        ));

$uid = $facebook->getUser();

if($uid)
{
  session_start();
  if(!isset($_SESSION['me']))
  {
     try
        {
           $_SESSION['me'] = fql("select name, sex, pic_big, locale, email, birthday from user where uid=me()",$facebook);
           $_SESSION['me'] = $_SESSION['me'][0];
        }
        catch(Exception $o)
        {
          print_r($o);
        }
  }
}
else
{
            $loginUrl   = $facebook->getLoginUrl(
                array(
                    'scope'         => $fbconfig['perms'],
                    'redirect_uri'  => $fbconfig['canvas'],
                )
             ); 
            echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
            exit;
}

Так что ошибка $ facebook-> getUser();это 0. но когда я перестаю обновляться и возвращаюсь туда снова .. это работает правильно.

1 Ответ

0 голосов
/ 27 ноября 2011

Попробуйте установить заголовки P3P.Некоторые браузеры не позволяют странице в iframe устанавливать cookie, если они не указаны.

Что-то вроде первой строки в PHP должно сделать это.

заголовок ('P3P: CP = "IDC DSP COR ADM DEVI TAII PSA PSD IVAi IVDi CONI HIS НАШ IND CNT"');

Подробнее о P3P здесь

http://en.wikipedia.org/wiki/P3P

...