Sessions: Eliminar una sesión cuando se utiliza FilesystemStore

Creado en 27 ene. 2017  ·  3Comentarios  ·  Fuente: gorilla/sessions

Hola, primero gracias por este paquete, es realmente fácil de usar.

Problema

Si lo entiendo correctamente, cuando utilizo el almacén del sistema de archivos para las sesiones, las cookies de sesión que obtiene el cliente solo contienen los ID de las sesiones (ya que no es un CookieStore). El backend recupera en una solicitud http la sesión del sistema de archivos y la carga en la memoria (o una vez en la memoria y la guarda para solicitudes posteriores).

¿Por qué no hay una función para eliminar sesiones del almacén del sistema de archivos / en la memoria?

Mi escenario actual es el siguiente; Cuando un usuario cierra la sesión, quiero que se elimine la sesión:

  • el archivo de sesión debe ser eliminado
  • la siguiente solicitud con la cookie de sesión proporcionada no será válida ya que no se puede encontrar una sesión coincidente

Sin embargo, en este momento, siempre que nunca cambie la clave privada para firmar cookies, la sesión será válida para siempre.

Podría solucionar este problema con una bandera en el objeto de sesión que indique si la sesión sigue siendo válida, pero eso me dejaría con la necesidad de eliminar manualmente las sesiones del almacén del sistema de archivos.

Solicitud

¿Es posible agregar una función como filesystemStore.RemoveSession(id string) para permitir que la tienda limpie la sesión del sistema de archivos y las sesiones cargadas en memoria?

documentation

Comentario más útil

Configurar sess.MaxAge(-1) y luego llamar a sess.Save eliminará la sesión: https://github.com/gorilla/sessions/blob/master/store.go#L213 -L223

Documentos aquí: http://www.gorillatoolkit.org/pkg/sessions#FilesystemStore.Save

Guardar agrega una sola sesión a la respuesta.

Si Options.MaxAge de la sesión es <= 0, el archivo de sesión se eliminará de la ruta de la tienda. Con este proceso, refuerza el manejo adecuado de las cookies de sesión, por lo que no es necesario confiar en la administración de cookies en el navegador web.

Espero que aclare.

Todos 3 comentarios

Configurar sess.MaxAge(-1) y luego llamar a sess.Save eliminará la sesión: https://github.com/gorilla/sessions/blob/master/store.go#L213 -L223

Documentos aquí: http://www.gorillatoolkit.org/pkg/sessions#FilesystemStore.Save

Guardar agrega una sola sesión a la respuesta.

Si Options.MaxAge de la sesión es <= 0, el archivo de sesión se eliminará de la ruta de la tienda. Con este proceso, refuerza el manejo adecuado de las cookies de sesión, por lo que no es necesario confiar en la administración de cookies en el navegador web.

Espero que aclare.

Cierre: vuelva a abrir si tiene alguna pregunta.

Preguntándose cómo manejar el caso con archivos de sesión obsoletos, por ejemplo, alguna sesión se autentica en el modo privado del navegador y más tarde, obviamente, no volvería a cerrar sesión y dar una señal para la eliminación del archivo de sesión, ¿hay alguna forma recomendada de manejar tal caso? ?

¿Fue útil esta página
0 / 5 - 0 calificaciones