Почему пользователь не вышел из системы после закрытия браузера в Yii?

Эта проблема возникает только в Chrome и Firefox. Опера и Сафари работают нормально. При входе в систему я не проверяю опцию «запомнить меня».

Для параметра 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));
}

person Meliborn    schedule 07.11.2012    source источник
comment
В чем собственно вопрос?   -  person eh9    schedule 07.11.2012
comment
Почему пользователь не вышел из системы после закрытия браузера?   -  person Meliborn    schedule 07.11.2012
comment
Пожалуйста, отредактируйте вопрос, чтобы другие могли понять, о чем вы спрашиваете. В заголовке написано приложение Yii, но вы даже не указываете, какую библиотеку .js вы вызываете.   -  person eh9    schedule 07.11.2012
comment
Js? Пакет Yii по умолчанию.   -  person Meliborn    schedule 07.11.2012
comment
Разместите свой код. Мы не должны угадывать, какой код вы написали. Опубликуйте свою loginForm модель и action   -  person Afnan Bashir    schedule 07.11.2012


Ответы (1)


В конфигурации (protected/config/main.php) вы можете изменить allowAutoLogin на false.

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

Подробнее о состояниях входа в Yii читайте здесь http://www.yiiframework.com/doc/api/1.1/CWebUser

person Brett Gregson    schedule 07.11.2012
comment
Ничего не происходит, та же проблема. - person Meliborn; 07.11.2012
comment
Выйдите из системы, очистите кеш браузера и снова войдите в систему. файл cookie все еще может быть установлен ранее. - person Brett Gregson; 07.11.2012