Hola ese es mi config.yml
:
session: # handler_id set to null will use default session handler from php.ini cookie_lifetime: ~ gc_maxlifetime: ~
Ya vi en don google 20 mil formas poner cookie_lifetime: 0
, gc_maxlifetime: 0
etc etc y no hay forma:
a los 15 minutos de no tocar el teclado se cierra la session, uso FOSUser, ¿tendrá algo que ver?
Tengo que lograr que solo se cierre la session al cerrar el navegador no antes,
¿Alguien me da una ayuda?
Gracias
Respuestas
Lo primero que comprobaría son los datos de la cookie que crea Symfony. ¿Está bien puesta la fecha/hora de expiración? Después, comprobaría cuál es la configuración del archivo php.ini
relacionada con las sesiones.
@javiereguiluz
Pues no. Ya busqué en Google puse en php.ini
todo en cero para que no tenga limites. Veo la cookie que crea Symfony y no tiene fecha, es infinita; pero a los 15 o 20 minutos me saca.
Tengo en el mismo servidor proyectos en CodeIgniter y funciona perfecto: el usuario al cerrar su navegador cierra la sesión si no sigue conectado.
Es algo de Symfony o del FOSUser, el tema es que no puedo presentar el proyecto así. Es para un punto de ventas si se tiene que logear cada 20 minutos me lo van a tirar por la cabeza.
@xub
En esta respuesta de StackOverflow dan algunas posibles soluciones alternativas.
1) Como dices que en el mismo servidor otros proyectos sí que funcionan, seguramente la primera solución no te va a servir: es posible que en el servidor haya algún proceso automático que borre las sesiones inactivas.
2) ¿Es posible que borres la caché de Symfony de alguna manera durante la ejecución de la aplicación? Por defecto las sesiones se guardan en el mismo directorio que la caché, así que si la borras estás cerrando todas las sesiones. Puedes cambiar el directorio donde se guardan las sesiones.
@javiereguiluz
Si, era el script de Debian ...
# Look for and purge old sessions every 30 minutes 09,39 * * * * root [ -x /usr/lib/php5/sessionclean ] && /usr/lib/php5/sessionclean
Saludos
@xub