Как скрыть информацию о сеансе от URL после успешной аутентификации через Facebook Connect? - PullRequest
0 голосов
/ 24 марта 2011

Я использую Facebook Connect на одном из моих веб-сайтов. Для этого я использовал библиотеку php sdk.

Я использую следующий код:

<?php
  require APP_PHYSICAL_PATH.'includefiles.php';
  $loginUrl = $facebook->getLoginUrl(
        array(
        'req_perms' => 'email,user_location',
        'next'=>APP_URL.'views/search.php?validate=true'

        )
);
?>  
   <a href="<?php echo $loginUrl; ?>">
    <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif">
  </a>

Проблема в том, что после успешной аутентификации он переходит на страницу поиска, но отображает информацию о сеансе в URL. Например,

http://mydomain/views/search.php?validate=true&session={"session_key"%1A"4.7REQluh3EVBGKiA5m8cNlg__.6600.1700968000-900001178893860"%  

Я хочу, чтобы эта информация о сеансе не была видна. Есть ли способ сделать это?

Пожалуйста, помогите мне в этом

Спасибо

Панкай

1 Ответ

2 голосов
/ 24 марта 2011

Мое решение этой проблемы было следующим:

  • Когда пользователь нажимает кнопку входа в Facebook, появляется всплывающее окно (желательно без строки ввода URL).Кроме того, вы можете передать параметр 'display' => 'popup' в метод getLoginUrl, так как при этом будет использоваться другой макет страницы подключения Facebook, который больше подходит для всплывающих окон.
  • Когда вход в Facebook иПредоставление разрешений выполнено успешно, Facebook перенаправляет вас на тот URL, который вы не хотите показывать.
  • На странице, на которую вы перенаправлены, вы должны повторить JavaScript, закрывающий окно.

Другим решением было бы сделать весь этот процесс соединения внутри iframe (хотя я не проверял этот подход).

...