Facebook Login Session

  • Hallo,


    Ik heb voor mijn website een facebook login geïntegreerd. Alleen zit met een probleem met de sessions.
    Met de normale login doet de login het. En geeft een sessie mee: $_SESSION['id'] .


    Nu met de facebook login stuurt de index van de ingame gelijk weer terug naar de outgame.
    Dat komt door de check in de ingame:

    PHP
    if(!isset($_SESSION['id'])){		header('Location: ../index.php');	}



    Maar hoe zorg ik dat de facebook sessie hier ook wordt gecontroleerd?
    Facebook login script:

    PHP
    <?/* 	For this to work you will have to download the Facebook PHP SDK	https://github.com/facebook/php-sdk/*/require('facebook.php');/*	Set these variables to application's ones*/$app_id = '410691255645169';$app_secret = 'b6cd658419182d749504357e8562b0fe';// init fb object$facebook = new Facebook(array(	'appId'		=> $app_id,	'secret'	=> $app_secret,	'cookie'	=> false));// get a session for user$session = $facebook->getSession();$me = null;// if have session get user dataif ($session){	try	{		$uid = $facebook->getUser();		$me = $facebook->api('/me');	}	catch(FacebookApiException $e)	{		error_log($e);	}}// if we have user data show logout button, else show login button with extended permission to get his email addy$data = '';if ($me){	// store user data here!!!	print_r($me);	$logoutUrl = $facebook->getLogoutUrl();	$data = '<a href="'.$logoutUrl.'"><img src="http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif"></a>';}else{	$loginUrl = $facebook->getLoginUrl(array('req_perms' => 'email,read_stream'));	$data = '<a href="'.$loginUrl.'"><img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif"></a>';}// for javascript side use the same session$fb_session = json_encode($session);?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title>Verwijzing naar site..</title></head><body>	<script language="JavaScript"><!-- window.location="http://www.secondwar.nl/game/index.php";//--></script>    <div id="fb-root"></div>    <script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>    <script type="text/javascript">    //<![CDATA[    FB.init({		appId: '<?=$app_id;?>', 		cookie: true, 		status: true, 		xfbml: true, 		session: <?=$fb_session;?>	});    FB.Event.subscribe('auth.login', function(){		window.location.reload();	});    //]]>    </script></body></html>



    Kunnen jullie mij op weg helpen?


    Met vriendelijke groeten,
    Jeffrey Rijdes

  • Dat is mijn probleem..
    Er staat in de login_facebook.php:


    PHP
    // get a session for user
    $session = $facebook->getSession();
    $me = null;


    De getSession functie is:

  • Probeer dit eens:


    Of beter nog:

    PHP
    if ($session) {
      try {
        $me = $facebook->api('/me');
        if ($me) {
          //goed
        }
      } catch (FacebookApiException $e) {
       //fout
      }
    }
  • Je moet bij het inloggen via je Facebook login een waarde geven aan de session id variabele.
    Dat kan je bijvoorbeeld zo doen:


Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!