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".
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.