Facebook Connect sistemden çıktıktan sonra, Facebook PHP sınıfı yine kullanıcı giriş olduğunu düşünüyor

3 Cevap php

Bir kullanıcı ilk sitemin giriş ekranını çarptığında, ben Facebook Connect kullanıcı Facebook'ta oturum açmış olup olmadığını belirlemek ve doğruysa sayfayı yeniden var:

<script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>

<script type="text/javascript">
  FB.init('MY_API_KEY', '/xd_receiver.htm', { 'reloadIfSessionStateChanged': true });
</script>

sayfa tekrar, benim arka uç PHP kod kontroller kullanıcı Facebook'ta oturum açmış ve daha sonra siteme bunları otomatik olarak oturum ise:

$Facebook = new Facebook(MY_API_KEY, MY_APP_SECRET);

if ($Facebook->get_loggedin_user()) {
  // Log the user in.
}

O kısmı gayet iyi çalışıyor. Sorun çıkış işlevselliği ile. Benim çıkış bağlantı anda bu gibi görünüyor:

<a href="#" onclick="FB.Connect.logoutAndRedirect('http://my.url/logout/');">Log Out</a>

Bu tıklandığında, kullanıcı başarıyla Facebook üzerinden giriş, ama arka uç Facebook PHP nesne hala benim giriş kodu daha sonra tekrar bunları kaydeder böylece kullanıcı, ($Facebook->get_loggedin_user() hala kullanıcı kimliği döndürür) kaydedilir düşünüyor edilir otomatik olarak.

Yani bulma yaşıyorum sorun Facebook Connect üzerinden kullanıcı oturumu olsa bile, arka uç Facebook PHP nesne hala kullanıcı herkes bu üstesinden nasıl biliyor mu oturum düşündüğü nedir? Benim PHP kodu ile otomatik olarak kullanıcı giriş yapamıyorum?

Herhangi bir yardım için teşekkür ederiz!

3 Cevap

Ben sadece benzer bir sorunu olan biri yardımcı oldu. Temelde, facebook oturumu sona erecek ve daha sonra (o biraz zor ve gerçekten dokümanlar tüm bu değil de açıkladı) sonra çerezleri temizlemek gerekir:

http://stackoverflow.com/questions/1386557/how-to-log-out-users-using-facebook-connect-in-php-and-zend/1386749#1386749

O ;) yardımcı olur o kadar oy

Benim KOMPLE oturum (kullanıcı giriş yapmış olması gerekiyor) temizlemek zorunda beri, bu tamamen benim için iyi çalıştı:

. 1) facebook kullanıcı oturumunu:

$redirectUrl = $this->getFacebook()->getLogoutUrl(array(
            'next' => $this->baseUrl.'/logout',
        ));
$this->redirect($redirectUrl);

. 2) geri facebook sıçrama sonra, benim web app kullanıcı oturumunu:

public function logoutAction()
{
        session_destroy();        
        // redirect back to start page
        return $this->redirect($this->baseUrl);
}

Bayrak için kurulum kendi bir değişkeni bu geçici bir çözüm olarak, ortaya çıkar Can?