Sorun sitesine bağlanmaya bir Facebook çıkıyor ve oturumları yok

3 Cevap php

Ben bir facebook ben (üzgünüm dev hala hiçbir url olduğu gibi) dışında kullanıcı oturum inşa ediyorum app bağlanmak almak için görünmüyor olabilir. Kullanıcı sınıfı ile bir bağlantıyı tıkladığında her zaman iş gibi görünüyor ve hatta kullanıcı belirten FB modal dışarı kayıt edildiğini gösteren aşağıdaki JS çalışır "çıkış".

$(document).ready(function(){
    $('.logout').click(function(){
    	//Kill facebook Session
    	FB.Connect.logout(function() {
    		window.location = $('.logout').attr("href");
    	});
    });
});

Yukarıda geri arama ulaştıktan sonra, JS PHP yine özel bir oturumun kaldırılmasını zorlar ve FB oturum kaldırıldı sigortalanır çıkış sayfaya kullanıcıyı gönderir. Sonra kullanıcı geri onlar "çıkış" linkine tıklandığında vardı sayfaya gönderilir.

//Remove our site session
Auth::logout();



/* FAIL
//Send user to FB logout page and then back here
$logout_url = $this->fb->get_logout_url( site_url( $return_to ? base64_url_decode($return_to) : '' ) );

// Clear any stored state
$this->fb->clear_cookie_state();

exit(header("Location: ". $logout_url));
*/



//FAIL
//$this->fb->logout( site_url( $return_to ? base64_url_decode($return_to) : '' ) );


//FAIL
//Remove user (is this needed..?)
//$this->fb->set_user(NULL, NULL);


//Remove the FB session cookies (in case the JS didn't)
$this->fb->clear_cookie_state();


// Redirect to privious page
redirect( ( $return_to ? base64_url_decode($return_to) : '') );

Ancak, sağ arka olduklarını ve hala linke ikinci bir tıklamayla oturum nerede olan kullanıcı bütün bu süreç sonuçları hile yapmak ve ancak oturumu kaldırmak gibi görünüyor. Ben kundakçı izlenir var (w / firecookie) ve FB oturum çerezleri silme PHP oturum kapatma sayfalık raporlar - henüz yüklü sonraki sayfa hala onları kullanmak gibi görünüyor!

Herkes oturumları sonra konuşmaya lütfen nasıl tamamen DESTROY ALL FACEBOOKS hım için ... bilen varsa.

:EDIT: I have even tried to manually remove all cookies on the logout page and it still fails

if( $_COOKIE ) {

	foreach( $_COOKIE as $name => $value ) {

		//Get the current cookie config
		$params = session_get_cookie_params();

		// Delete the cookie from globals
		unset($_COOKIE[$name]);

		//Delete the cookie on the user_agent
		setcookie($name, '', time()-43200, $params['path'], '', $params['secure']);
	}
}

3 Cevap

Benim tahminim Facebook API sınıfları başlıyor çünkü oturumu okur ve JavaScript çağrı sadece temizlenir yine tüm çerezleri ayarlar olmasıdır.

The php facebook lib and the FB js lib both use the same cookienames. (so you can login through javascript and the php lib will be logged in as well).

: Dışarı günlüğü ve arada bir URL'ye gitmek için özel bir işlevi vardır

FB.Connect.LogoutAndRedirect(url);

Just use the <fb:login-button> tag and make sure you have autologoutlink='true' Then, when the user is logged in, print out the <fb:login-button> tag and it will show up as a "Logout?" button

Umut olur.

EDIT: The docos for login-button: http://wiki.developers.facebook.com/index.php/Fb:login-button

(Yönlendirme sayfası sunucu şeyler temizler burada) Bu benim için çalıştı

            FB.logout(function(response) {
                window.location.href="/login/signout";
            });