Guardar datos de sesión en base de datos

Una forma de añadir seguridad a nuestra gestión de sesiones es almacenar los datos de la misma en base de datos. Cuando los datos de sesión se almacenan en base de datos, el identificador de sesión de la cookie de usuario se valida con el identificador de sesión almacenado en base de datos. Si es el mismo, la sesión continúa con la sesión y sino encuentra un identificador de sesión, dicha sesión será destruida.

Para almacenar datos de sesión en base de datos, primero debemos crear una tabla de base de datos para almacenar dichos datos. Este es el SQL de creación de dicha tabla para **MySQL** extraído del manual de CodeIgniter:

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
   session_id varchar(40) DEFAULT '0' NOT NULL,
   ip_address varchar(45) DEFAULT '0' NOT NULL,
   user_agent varchar(120) NOT NULL,
   last_activity int(10) unsigned DEFAULT 0 NOT NULL,
   user_data text NOT NULL,
   PRIMARY KEY (session_id),
   KEY `last_activity_idx` (`last_activity`)
);

Por defecto, la tabla se llamará **ci_sessions**, sin embargo podemos llamarla como queramos colocando el nuevo nombre en el fichero de configuración de la aplicación application/config/config.php.

$config ['sess_table_name'] = 'ci_sessions';

Una vez creada la tabla en la base de datos, debemos habilitar la opción de almacenamiento de sesiones en base de datos en el archivo config.php de la siguiente manera:

$config ['sess_use_database'] = TRUE;

Captura de pantalla con almacenamiento de datos de sesión en la tabla **ci_sessions**:

Ejemplo de datos almacenadas en la tabla ci_sessions

results matching ""

    No results matching ""