Buona sera.. Volevo sviluppare una semplice web app che utilizzi il login tramite facebook, ma sono abbastanza incasinato direi... passiamo subito al codice:
Codice PHP:
$_CONFIG['ObjFacebook'] = new Facebook($_CONFIG);
$_CONFIG['utente']['user'] = $_CONFIG['ObjFacebook']->getUser();
if($_CONFIG['utente']['user']) {
$_CONFIG['utente']['access_token'] = $_CONFIG['ObjFacebook']->getAccessToken();
$_CONFIG['utente']['stato'] = true;
$_CONFIG['utente']['logoutUrl'] = $_CONFIG['ObjFacebook']->getLogoutUrlMod($_CONFIG['utente']['access_token'], 1);
try {
$_CONFIG['utente']['profilo'] = $_CONFIG['ObjFacebook']->api('/me');
$_CONFIG['lang'] = $_CONFIG['utente']['profilo']['locale'];
} catch (FacebookApiException $e) {
error_log($e);
$_CONFIG['utente'] = null;
}
}
else {
$_CONFIG['utente']['loginUrl'] = $_CONFIG['ObjFacebook']->getLoginUrl(array('scope' => 'email', 'redirect_uri' => 'http://dominio.it/FbMenu/?id=1'));
$_CONFIG['utente']['stato'] = false;
$_CONFIG['lang'] = "it_IT";
}
se l'utente è loggato valorizzo un po' di variabili, tipo la lingua dell'utente, il suo profilo e il link di login o di logout. La funzione Facebook::getLogoutUrl() mi ha sempre dato problemi allora dovrei aver risolto con questa:
Codice PHP:
public function getLogoutUrlMod($acces_token, $next = 1) {
return "https://www.facebook.com/logout.php?access_token=".$acces_token."&next=http://dominio.it/FbMenu/?id=".$next;
}
l'unica pagina per ora presente è questa:
Codice PHP:
<?php
if(!$_CONFIG['utente']['stato']) {
?>
[url="<?php echo $_CONFIG['utente']['loginUrl']; ?>"]Login[/url]
<?php
}
else {
?>
[url="<?php echo $_CONFIG['utente']['logoutUrl'] ?>"]Logout[/url]
<?php
}
print_r($_CONFIG['utente']);
?>
Quando arrivo nel sito per la prima volta effettuo il login normalmente e la pagina successiva (sempre lo stesso file però) mi appare il link di logout, il mio problema è che quando premo su questo link non mi effettua il logout dall'app! se in un'altra finestra però ho aperto http://facebook.it questa slogga come è giusto che sia. in pratica dopo il logout mi si ripresenta la stessa pagina con i dati dell'utente mandati a video con la print_r finale... Per effettuare veramente il logout devo andare a cancellare i cookie della webapp manualmente... Dove sbaglio? spero di essermi spiegato...
Grazie per l'aiuto!