Nano Hash - криптовалюты, майнинг, программирование

PHP SDK — выход из Facebook

Я использую последнюю версию PHP SDK для Facebook (3.2.1).

Мне было интересно, когда вы выходите из системы с помощью функции, предоставленной в base_facebook.php из sdk, есть ли способ остановить ее от фактического выхода из facebook, но при этом удалить сеанс для приложения веб-сайта?

Ниже приведена функция выхода из base_facebook.php

/**
* Get a Logout URL suitable for use with redirects.
*
* The parameters:
* - next: the url to go to after a successful logout
*
* @param array $params Provide custom parameters
* @return string The URL for the logout flow
*/

 public function getLogoutUrl($params=array()) {
 session_destroy();
 return $this->getUrl(
  'www',
  'logout.php',
 array_merge(array(
  'next' => $this->getCurrentUrl(),
  'access_token' => $this->getUserAccessToken(),
  ), $params)
 );
}

и затем мой URL-адрес выхода: $logoutUrl = $facebook->getLogoutUrl();затем, очевидно, используя тег привязки для выхода: <a href="<?php echo $logoutUrl; ?>">Logout</a>

Спасибо.

29.07.2013

Ответы:


1

Не используйте $logoutUrl.

 <li><a href="?action=logout">Logout</a></li>

И в свой php-код добавьте это. Это только выведет вас из вашего приложения.

if(isset($_GET['action']) && $_GET['action'] === 'logout'){
        $facebook->destroySession();
    }
30.07.2013
  • Спасибо за это, я как раз собирался использовать session_destroy(); но это, похоже, тоже вышло из Facebook, хотя это работает, так что спасибо! 02.08.2013

  • 2

    Создайте файл logout.php

    <?php 
    session_start();            //start session
    $_SESSION = array();    //clear session array
    session_destroy();      //destroy session
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Log Out</title>
    </head>
    
    <body>
    <p>You have successfully logged out!</p>
    <p>Return to the <a href="....index.php">Home</a> page</p>
    
    </body>
    </html>
    

    И измените свой код, где вы проверяете статус пользователя

    if ($user) { 
        $params = array( 'next' => 'http://....../logout.php' );
        $logoutUrl = $facebook->getLogoutUrl($params);
    } else {
      $loginUrl = $facebook->getLoginUrl();
    }
    

    Используйте $logoutUrl для выхода пользователя из системы.

    <?php if ($user): ?>
    <?php echo "Welcome, ".$me['first_name']. " " .$me['last_name']   ." <br />";
          echo "Id: " . $me['id'] ." <br />";  ?>
    
    <a href="<?php echo $logoutUrl; ?>">  Logout </a> <br />
    
    <?php else: ?>
      <a href="<?php echo $loginUrl; ?>"> 
    
       <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif"> </a>  
     <?php endif ?>
    

    Надеюсь, это будет работать нормально

    10.04.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..