mejor cual php facebook zend-framework frameworks

cual - ¿Cómo desconectar usuarios usando Facebook Connect en PHP y Zend?



yii vs laravel cual es mejor (3)

Intento crear una aplicación Connect utilizando PHP y Zend Framework. También tengo un sistema de autenticación de usuario basado en Zend_Auth. Ahora, puedo iniciar sesión usando Facebook, pero el cierre de sesión no funciona.

Necesito borrar la identidad de Zend_Auth y eliminar toda la información de inicio de sesión de Facebook. Cuál sería la mejor forma de hacer esto?

facebook_client->expire_session() y facebook_client->clear_cookie_state(); juntos y también facebook_client->logout($next) después de llamar a Zend_Auth::getInstance()->clearIdentity()

Ninguno de ellos parece funcionar.


Puede cerrar la sesión del usuario de Facebook y redirigir al usuario a la página de su sitio web con un código PHP como este:

header ("Ubicación:". $ facebook-> getLogoutUrl (array (''next'' => "http://yourwebsite.com/redirectAfterFacebookLogout.php")));


Primero debe llamar al cliente de javascript y luego enviarlos a su secuencia de comandos de log php. Entonces, llama a .js:

FB.Connect.logoutAndRedirect("/path/to/zend/logout/controller");

Verás un menú emergente modal que dice "estás cerrando sesión en este sitio y en Facebook *. Serás redirigido a donde esté tu script de finalización de sesión:

try { $facebook->expire_session(); } catch (FacebookRestClientException $e) { //you''ll want to catch this //it fails all the time }

Por lo general, también llamo a esta función en el script de cierre de sesión de PHP, solo para estar seguro:

/** * Remove the local Facebook cookies that get set manually * * @return void */ protected function _killFacebookCookies() { // get your api key $apiKey = $this->getConfig()->getApiKey(); // get name of the cookie $cookie = $this->getConfig()->getCookieName(); $cookies = array(''user'', ''session_key'', ''expires'', ''ss''); foreach ($cookies as $name) { setcookie($apiKey . ''_'' . $name, false, time() - 3600); unset($_COOKIE[$apiKey . ''_'' . $name]); } setcookie($apiKey, false, time() - 3600); unset($_COOKIE[$apiKey]); }


(NUEVO SDK de FACEBOOK) Para mí, el getconfig () no funcionaría. Así que tuve que encontrar las nuevas funciones del archivo base_facebook.php y agregarle este código. Luego llámalo en tu archivo de llamadas. Antes de hacerlo, llame a $ facebook-> destroySession ();

public function _killFacebookCookies() { // get your api key $apiKey = $this->getAppId(); // get name of the cookie $cookie = $this->getSignedRequestCookieName(); $cookies = array(''user'', ''session_key'', ''expires'', ''ss''); foreach ($cookies as $name) { setcookie($apiKey . ''_'' . $name, false, time() - 3600); unset($_COOKIE[$apiKey . ''_'' . $name]); } setcookie($apiKey, false, time() - 3600); unset($_COOKIE[$apiKey]); }