2012-11-07 53 views
3

此問題僅在Chrome和Firefox中設置。 Opera和Safari工作正常。 登錄時,我不檢查rememberMe選項。爲什麼用戶在Yii瀏覽器關閉後沒有註銷?

的allowAutoLogin設置爲TRUE

這裏是LoginForm的模型我的登錄方法:

public function login() 
{ 
    if ($this->_identity === NULL) 
    { 
     $this->_identity = new UserIdentity($this->login, $this->password); 
     $this->_identity->authenticate(); 
    } 
    if ($this->_identity->errorCode === UserIdentity::ERROR_NONE) 
    { 
     $duration = $this->rememberMe ? 3600 * 24 * 30 : 0; // 30 days 
     Yii::app()->user->login($this->_identity, $duration); 
     return TRUE; 
    } 
    else 
     return FALSE; 
} 

這裏是我的行動:

public function actionLogin() 
{ 
    $model = new LoginForm; 

    // if it is ajax validation request 
    if (isset($_POST['ajax']) && $_POST['ajax'] === 'login-form') 
    { 
     echo CActiveForm::validate($model); 
     Yii::app()->end(); 
    } 

    // collect user input data 
    if (isset($_POST['LoginForm'])) 
    { 
     $model->attributes = $_POST['LoginForm']; 
     // validate user input and redirect to the previous page if valid 
     if ($model->validate() && $model->login()) $this->redirect(Yii::app()->user->returnUrl); 
    } 
    // display the login form 
    $this->render('login', array('model' => $model)); 
} 
+0

Yii的登錄狀態究竟什麼是問題? – eh9

+0

爲什麼用戶在瀏覽器關閉後沒有註銷? – Meliborn

+0

請編輯該問題,以便其他人可以理解您問的問題。標題說「Yii應用程序」,但你甚至沒有說明你正在調用的.js庫。 – eh9

回答

1

在配置(保護/ config/main.php)你可以改變allowAutoLogin

'components' => array(
    'user' => array(
     // enable cookie-based authentication 
     'allowAutoLogin' => false, 
    ), 

瞭解更多關於此http://www.yiiframework.com/doc/api/1.1/CWebUser

+1

沒有任何反應,同樣的問題。 – Meliborn

+0

註銷並清除瀏覽器緩存,然後重新登錄。該cookie可能仍然是從之前設置的。 –

+0

它正在工作... –

相關問題