简体   繁体   English

Facebook SDK 4.0注销PHP

[英]facebook sdk 4.0 logout php

<?php
    /* INCLUSION OF LIBRARY FILEs*/
    require_once( 'lib/Facebook/FacebookSession.php');
    require_once( 'lib/Facebook/FacebookRequest.php' );
    require_once( 'lib/Facebook/FacebookResponse.php' );
    require_once( 'lib/Facebook/FacebookSDKException.php' );
    require_once( 'lib/Facebook/FacebookRequestException.php' );
    require_once( 'lib/Facebook/FacebookRedirectLoginHelper.php');
    require_once( 'lib/Facebook/FacebookAuthorizationException.php' );
    require_once( 'lib/Facebook/GraphObject.php' );
    require_once( 'lib/Facebook/GraphUser.php' );
    require_once( 'lib/Facebook/GraphSessionInfo.php' );
    require_once( 'lib/Facebook/Entities/AccessToken.php');
    require_once( 'lib/Facebook/HttpClients/FacebookCurl.php' );
    require_once( 'lib/Facebook/HttpClients/FacebookHttpable.php');
    require_once( 'lib/Facebook/HttpClients/FacebookCurlHttpClient.php');

    /* USE NAMESPACES */

    use Facebook\FacebookSession;
    use Facebook\FacebookRedirectLoginHelper;
    use Facebook\FacebookRequest;
    use Facebook\FacebookResponse;
    use Facebook\FacebookSDKException;
    use Facebook\FacebookRequestException;
    use Facebook\FacebookAuthorizationException;
    use Facebook\GraphObject;
    use Facebook\GraphUser;
    use Facebook\GraphSessionInfo;
    use Facebook\FacebookHttpable;
    use Facebook\FacebookCurlHttpClient;
    use Facebook\FacebookCurl;

    /*PROCESS*/

    //1.Stat Session
     session_start();

    //check if users wants to logout
     if(isset($_REQUEST['logout'])){
        unset($_SESSION['fb_token']);
     }

    //2.Use app id,secret and redirect url 
     $app_id = '';
     $app_secret = '';
     $redirect_url= 'domain.php';

    //3.Initialize application, create helper object and get fb sess
     FacebookSession::setDefaultApplication($app_id,$app_secret);
     $helper = new FacebookRedirectLoginHelper($redirect_url);
     $sess = $helper->getSessionFromRedirect();

    //check if facebook session exists
    if(isset($_SESSION['fb_token'])){
        $sess = new FacebookSession($_SESSION['fb_token']);
    }

    //logout
    $logout = '';

    //4. if fb sess exists echo name 
        if(isset($sess)){
            //store the token in the php session
            $_SESSION['fb_token']=$sess->getToken();
            //create request object,execute and capture response
            $request = new FacebookRequest($sess,'GET','/me');
            // from response get graph object
            $response = $request->execute();
            $graph = $response->getGraphObject(GraphUser::classname());
            // use graph object methods to get user details
            $name = $graph->getName();
            $id = $graph->getId();
            $image = 'https://graph.facebook.com/'.$id.'/picture?width=300';
            $email = $graph->getProperty('email');
            $gender =$graph->getProperty('gender');
            echo "hi $name <br>";
            echo "your email is $email <br><Br>";
            echo "your $gender";
            // echo "<img src='$image' /><br><br>";
            echo "<a href='".$logout."'><button>Logout</button></a>";
            $_SESSION['name'] = $name;
            $_SESSION['email'] = $email;
            $_SESSION['gender'] = $gender;
        }else{
            //else echo login
            echo '<a href="'.$helper->getLoginUrl(array('email')).'" >Login with facebook</a>';}
?>

i follow this facebook sdk web it work fine in log in , but how i going to make log out work for this script ? 我遵循这个facebook sdk网站,可以在登录时正常工作,但是我要如何使此脚本退出工作? i try to kill the session and cookie but the data still store in facebook session and i cant log out. 我尝试杀死会话和Cookie,但数据仍存储在Facebook会话中,我无法注销。 can anyone give me a help here? 有人可以在这里给我帮助吗?

you can use session destroy if you want to logout the user just from your application . 如果只想从应用程序中注销用户,则可以使用会话破坏。

session_destroy();

if you want to logout the user from facebook you can use getLogoutUrl($session, $next_url) method. 如果要从Facebook注销用户,可以使用getLogoutUrl($ session,$ next_url)方法。

echo $helper->getLogoutUrl($session,'http://example.com');

will output the logout url, where $helper is an instance of FacebookRedirectLoginHelper and $session is a valid instance of FacebookSession 将输出注销URL,其中$helperFacebookRedirectLoginHelper的实例, $sessionFacebookSession的有效实例

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM