2016-04-01 17 views
2

HybridAuth'ı son kullanıcı girişini unutturmaya çalışıyordum ama hiçbir şey işe yaramadı!HybridAuth beklenmedik oturum davranışı

1- HybridAuth Oturumları bile tahrip edilmez session_destroy kullanırken:

session_start(); 
var_dump($_SESSION); //Session Values before authentication 

require_once("hybridauth/Hybrid/Auth.php"); 
$config = 'hybridauth/config.php'; 

$hybridauth = new Hybrid_Auth($config); 
$google = $hybridauth->authenticate("Google"); 

session_unset(); 
session_destroy(); 

var_dump($_SESSION); //Session values after destroy 

Çıktı:

Session Values before authentication! 
array (size=2) 
    'HA::CONFIG' => 
    array (size=3) 
    < ----- content here ------> 
    'HA::STORE' => 
    array (size=5) 
    < ----- content here ------> 

Session values after destroy 
array (size=0) 
    empty 

alıyorum seans değerleri HybridAuth kullanırken o zaman çok garip oturum davranışı fark Hybrid_Auth sınıfını başlatmadan önce bile. Ve sayfayı yenilediğimde, kodun sonunda temizlenen değerler göründüğü halde aynı değerler kalır. Eğer

session_start(); 
session_destroy(); 

require_once("hybridauth/Hybrid/Auth.php"); 
$config = 'hybridauth/config.php'; 

$hybridauth = new Hybrid_Auth($config); 
$google = $hybridauth->authenticate("Google"); 

Yukarıdaki kod çalıştırmasına başlamadan

net oturumu ben ERR_TOO_MANY_REDIRECTS hatası alıyorum

2- Sonsuz yönlendirme döngüsü!

Burada neler oluyor?

cevap

4

Size Auth.php bu yöntemle dosyasını değiştirerek belirli bir sağlayıcı için oturumu

kaldırabilir

$this->load->library('hybridauthlib'); 

$this->hybridauthlib->logoutAllProviders(); 

veya

arayarak bir defada tüm sağlayıcılar için Hibrid Auth Oturumu temizleyebilirsiniz

// -------------------------------------------------------------------- 

/** 
* A generic function to logout from a specific provider 
*/ 

public static function logoutFromProvider($provider) 
{ 
    $adapter = Hybrid_Auth::getAdapter($provider); 

    $adapter->logout(); 
} 

Bu yöntemi şu şekilde arayabilirsiniz:

//$provider can be Facebook, Twitter, Google etc. 
public function logout($provider) 
{ 
    $this->hybridauthlib->logoutFromProvider($provider); 
}