Sesiones sin tiempo límite de expiración

Cordial Saludo

Alguno de ustedes sabe cómo hacer para que las sesiones de Yii no tengan tiempo de expiración, es decir que solo se cierren al momento de que el usuario de forma voluntaria lo haga, por medio de un botón "Cerrar Sesión".

Quedo atento a sus comentarios.

Muchas gracias.

Si te fijas, al crear una aplicación web mediante el terminal (consola), se genera un formulario de inicio de sesión que tiene un checkbox con la etiqueta "Remember me". Si se marca ese checkbox se agrega una cookie en el computador del usuario que permite preservar la sesión por mucho tiempo, hasta que el usuario la cierre manualmente.

Si quieres forzar ese comportamiento, tendrías que revisar el código de protected/models/LoginForm





public function login() {

        if ($this->_identity === null) {

            $this->_identity = new UserIdentity($this->username, $this->password);

            $this->_identity->authenticate();

        }

        if ($this->_identity->errorCode === UserIdentity::ERROR_NONE) {

            $duration = $this->rememberMe ? 3600 * 24 * 30 : 0; // 30 days Acá se define la duración de la cookie por un periodo de 30 días, sólo si está activado el rememberMe

            Yii::app()->user->login($this->_identity, $duration);

            return true;

        }

        else

            return false;

    }



Si a el código anterior cambias la linea[font="'Courier New"] $duration = $this->rememberMe ? 3600 * 24 * 30 : 0; [/font] por [font="'Courier New"]$duration = 3600 * 24 * 30 : 0;[/font] harás que siempre se cree una cookie con 30 días de duración para mantener la sesión iniciada.

Hola amigo en el caso que yo quiera que la session tenga un tiempo para expirar la session como haria?

Hola Arkangel,

yo lo he seteado en el config de esta manera:




'user'=>array(

                'class'=>'RWebUser',

                // enable cookie-based authentication

                'allowAutoLogin'=>true,

		'authExpires' => 600, //sessione di 10 minuti

                'loginUrl'=>array('******/login'),

        ),



10 minutos sin utilizar el programma y la session ce termina sola y le pide el login a el usuario.

El tiempo lo tienes que definir en segundos, 600 = 10 minutos.

Saludos

Hola de nuevo.

al conlocar esta configuracion el el ../config/mail.php y me da unos errores y al final me dice:

Error 500

include(RWebUser.php): failed to open stream: No such file or directory

gracias por la ayuda

Hola Arkangel747,

te sale ese error por que seguro no utilizas Rights y entonces donde hay




'user'=>array(

                'class'=>'RWebUser', <-----a qui tienes que poner tu class

........................



tienes que poner tu class…no se

CWebUser o otra class que hace el controle de acessos de usuarios en tu aplicaciòn.

De "default" yii utiliza CWebUser, y entonces si no utilizas otra class differente, tienes que poner CWebUser.

Saludos