Una solución que se utiliza a menudo, en esta situación, es:
- tener una duración de la sesión no demasiado tiempo: el plazo vencerá si el usuario no está activo (eso es sólo la forma en que funciona - y eso es mejor para su servidor si tiene muchos usuarios)
- cuando el usuario inicia sesión, configura una cookie que contiene lo que necesita para ser reconocido
- si regresa al sitio (con la cookie, y sin tener una sesión activa), utiliza la información contenida en esa cookie para iniciar sesión automáticamente y volver a crear la sesión al mismo tiempo.
esta manera:
- no tener miles de sesiones "activos" sin una buena razón
- que mantener las sesiones de forma estándar funcionan
y usted tiene la ventaja de "nunca estar alojado", al menos desde el punto de vista del usuario.
También tenga en cuenta que con sesiones "normales", la cookie que contiene la identificación de la sesión se eliminará cuando el usuario cierre su navegador, por lo que se desconectará, sin importar cuánto tiempo dure la sesión.
Con la solución que propongo, que es el que establece el tiempo que la cookie debe permanecer en el ordenador del usuario ;-)
Esto significa, sin embargo, que cuando un usuario inicia una sesión de salida de forma manual, usted tiene para eliminar tanto su sesión como la cookie, por supuesto, por lo que no se vuelve a iniciar sesión automáticamente.
Por supuesto, usted tiene que tener cuidado con lo que se propuso en la cookie: una cookie no es muy seguro, así que no almacenar una contraseña en ella, por ejemplo ;-)
En realidad, esta forma de hacer las cosas es cómo funciona a menudo la función "recordarme"; excepto aquí, sus usuarios no tendrán que marcar una casilla para activar "recordarme" ;-)
Si no tiene tiempo para desarrollar ese tipo de cosas, una manera bastante rápida y sucia es utilizar alguna solicitud de Ajax en todas sus páginas, eso simplemente "enviar un ping" a una página de PHP en el servidor - esto mantendrá la sesión activa (pero no es una buena manera de hacer las cosas: todavía tendrá MUCHAS sesiones) en el servidor, tendrás muchas solicitudes inútiles ... y solo funcionará siempre y cuando el usuario no cierre su navegador).
he puesto una cookie con el nombre de usuario y un número aleatorio concatenado a él y luego Lo he almacenado en la base de datos. Cuando se llama a una página, busco la cookie del sistema y la comparo con la de la base de datos si ambas coinciden, entonces visualizo a la persona como iniciada de otra forma no.Y cuando una persona cierra la sesión, establezco la cookie como nula. ¿Es esta la manera correcta? y es esto seguro? – developer
Me parece bien, al menos, nunca será una "seguridad perfecta", ya que cualquiera que use la computadora del tipo se conectará automáticamente, pero eso debería ser suficiente, supongo :-) –
ya entiendo la seguridad problema. Bueno, gracias Martin :-) – developer