Sto usando Facebook php-sdk nella mia app Facebook iframe per ottenere lo stato di accesso dell'utente. Subito dopo essere uscito dall'account Facebook Account> Disconnetti, la sessione non è ancora stata distrutta. Devo aspettare alcuni minuti prima che scada la vecchia sessione, quindi la mia app otterrà nuovamente lo stato di accesso corretto.Facebook API - La sessione esiste ancora dopo il logout utente
Mi aspetto che Facebook si uccida da solo e la sessione quando l'utente si disconnette. Come posso uccidere manualmente la sessione?
Ecco il mio codice:
$initParams = array(
'appId' => $conf['app_id'],
'secret' => $conf['secret_api_key'],
'cookie' => TRUE,
);
$fb = new Facebook($initParams);
$fb->getSession(); // will return a session object eventhough user signed out!
RISOLTO:
chiamando $fb->api('/me')
distruggerà la sessione se l'utente ha precedentemente disconnesso. Ho cambiato il mio codice come segue:
if ($session)
{
try
{
$fbuid = $fb->getUser();
$me = $fb->api('/me');
}
catch(FacebookApiException $e){}
}
Se la chiamata API non è riuscita, $session
sarà impostato a NULL. Comportamento molto strano, non spiegherò tutto quello che sta succedendo qui, ma ha risolto il mio problema di non aver aggiornato l'oggetto residuo della sessione tramite il metodo getSession()
.
Se il il link dell'URL di logout è stato creato correttamente, non ci dovrebbero essere problemi con il tuo codice ... puoi mostrarci la tua pagina di front-end? – ifaour
Non penso che sia un comportamento strano come è chiaramente indicato nei commenti [qui] (https://github.com/facebook/php-sdk/blob/master/examples/example.php) _Non sappiamo se è ancora valido fino a quando non facciamo una chiamata API utilizzando la sessione._ – ifaour
anzi, il mio male non ho letto correttamente i commenti del codice di esempio. Grazie per il tuo input – flochtililoch