guardar forget php session laravel redis laravel-4

php - forget - Laravel Redis Session Driver no funciona



redis laravel (3)

Encontré la solución gracias a la sugerencia de @philo.

La duración de la sesión en mi archivo de configuración se estableció en zero , porque quiero que mi sesión caduque al cerrar el navegador. Eso funciona para las sesiones nativas, pero para las sesiones redis hace que la sesión expire inmediatamente. Cuando cambio el tiempo de vida, mi sesión funciona como se esperaba.

Ahora sigo buscando cómo caducar en el navegador

Tengo dificultades para usar el controlador de sesión laravel 4 "redis". El problema es que nada se almacena realmente.

Cosas que he comprobado:

  • He configurado el controlador para redis en archivo de configuración de sesión y archivo de configuración de caché
  • En el archivo database-config se especifica una configuración de base de datos para redis:
  • Intenté almacenar algo manualmente con la clase redis, eso funcionó, el almacenamiento con la clase de sesión no funcionó

    // this is in my session config ''driver'' => ''redis'', //this is my db-config ''redis'' => array( ''cluster'' => true, ''default'' => array( ''host'' => ''127.0.0.1'', ''port'' => 6379, ''database'' => 0, ), ), //this works $redis = Redis::connection(); $redis->set(''name'', ''Taylor''); //this doesn''t work Session::put(''name'', ''Taylor'');

Cuando cambio la sesión a native funciona

Cualquier ayuda sería apreciada

ACTUALIZAR
Eso es interesante: cuando uso el redis-cli monitor como lo sugiere @philo, obtengo algunos resultados al intentar iniciar sesión en mi aplicación L4:

`1387191809.513730 [0 127.0.0.1:59268] "SELECT" "0" 1387191809.513835 [0 127.0.0.1:59268] "GET" "laravel:siau639prmckja34le11vbsfl7" 1387191809.863851 [0 127.0.0.1:59268] "SET" "laravel:siau639prmckja34le11vbsfl7" "s:226:/"_sf2_attributes|a:2:{s:6:/"_token/";s:40:/"9LPf354C2ZNtw0Oc1zyafSvMdFFlspPiJsq8w90v/";s:5:/"flash/";a:2:{s:3:/"old/";a:0:{}s:3:/"new/";a:0:{}}}_sf2_flashes|a:0:{}_sf2_meta|a:3:{s:1:/"u/";i:1387191809;s:1:/"c/";i:1387191809;s:1:/"l/";s:1:/"0/";}/";" 1387191809.866655 [0 127.0.0.1:59268] "EXPIRE" "laravel:siau639prmckja34le11vbsfl7" "0" 1387191828.464840 [0 127.0.0.1:59279] "SELECT" "0" 1387191828.464970 [0 127.0.0.1:59279] "GET" "laravel:siau639prmckja34le11vbsfl7" 1387191828.581774 [0 127.0.0.1:59279] "SET" "laravel:siau639prmckja34le11vbsfl7" "s:599:/"_sf2_attributes|a:4:{s:6:/"_token/";s:40:/"KSkc5OAsp9Psz3MC7dYo6FfkTvcdK6I6HcisSyJ3/";s:10:/"_old_input/";a:3:{s:6:/"_token/";s:40:/"9LPf354C2ZNtw0Oc1zyafSvMdFFlspPiJsq8w90v/";s:8:/"username/";s:10:/"bertcasier/";s:8:/"password/";s:4:/"test/";}s:5:/"flash/";a:2:{s:3:/"new/";a:0:{}s:3:/"old/";a:2:{i:0;s:10:/"_old_input/";i:1;s:6:/"errors/";}}s:6:/"errors/";O:29:/"Illuminate//Support//MessageBag/":2:{s:11:/"/x00*/x00messages/";a:1:{s:7:/"general/";a:1:{i:0;s:48:/"Ongeldige gebruikersnaam/wachtwoordcombinatie.../";}}s:9:/"/x00*/x00format/";s:8:/":message/";}}_sf2_flashes|a:0:{}_sf2_meta|a:3:{s:1:/"u/";i:1387191828;s:1:/"c/";i:1387191828;s:1:/"l/";s:1:/"0/";}/";" 1387191828.582214 [0 127.0.0.1:59279] "EXPIRE" "laravel:siau639prmckja34le11vbsfl7" "0" 1387191828.613536 [0 127.0.0.1:59284] "SELECT" "0" 1387191828.613649 [0 127.0.0.1:59284] "GET" "laravel:siau639prmckja34le11vbsfl7" 1387191828.653734 [0 127.0.0.1:59284] "SET" "laravel:siau639prmckja34le11vbsfl7" "s:226:/"_sf2_attributes|a:2:{s:6:/"_token/";s:40:/"SMxXljPLDaViVVSpCohfOKlpByhjp8E2ywS6zVkh/";s:5:/"flash/";a:2:{s:3:/"old/";a:0:{}s:3:/"new/";a:0:{}}}_sf2_flashes|a:0:{}_sf2_meta|a:3:{s:1:/"u/";i:1387191828;s:1:/"c/";i:1387191828;s:1:/"l/";s:1:/"0/";}/";" 1387191828.654102 [0 127.0.0.1:59284] "EXPIRE" "laravel:siau639prmckja34le11vbsfl7" "0" 1387191878.208814 [0 127.0.0.1:59358] "config" "get" "databases" 1387191878.215094 [0 127.0.0.1:59358] "INFO" "keyspace" 1387191880.176125 [0 127.0.0.1:59358] "select" "0" 1387191880.176314 [0 127.0.0.1:59358] "keys" "*"`

Parece que mi sesión expira inmediatamente? Escribí un proveedor de usuario de autenticación personalizado que me registra, en una API de reposo, y almacena el resultado en la sesión. Pero cuando uso el controlador de sesión redis, me redireccionan de inmediato a la página de inicio de sesión. Cuando uso RDM (redis client GUI) no puedo encontrar ninguna variable de sesión


Ahora sigo buscando cómo caducar en el navegador

Tenga en cuenta que la duración de la cookie y los datos de la sesión no están relacionados. Desea que la duración de la cookie sea 0 (eliminar al cerrar el navegador) y que la vida útil de los datos de la sesión sea más larga (siempre que permita entre solicitudes).


Tienes que encerrar tu ruta al controlador con middlewareGroups - Laravel 5.2

Route :: group ([''middlewareGroups'' => [''web'']], function () {...});