Sessions: Entfernen einer Sitzung, wenn FilesystemStore verwendet wird

Erstellt am 27. Jan. 2017  ·  3Kommentare  ·  Quelle: gorilla/sessions

Hallo, zunächst vielen Dank für dieses Paket, es ist wirklich einfach zu bedienen.

Problem

Wenn ich das richtig verstehe, enthalten die Sitzungscookies, die der Client bei der Verwendung des Dateisystemspeichers für die Sitzungen erhält, nur die IDs der Sitzungen (da es sich nicht um einen CookieStore handelt). Das Backend ruft auf eine http-Anfrage die Sitzung vom Dateisystem ab und lädt sie in den Speicher (oder einmal in den Speicher und behält sie für nachfolgende Anforderungen).

Warum gibt es keine Funktion zum Entfernen von Sitzungen aus dem Dateisystemspeicher/im Speicher?

Mein aktuelles Szenario folgt; Wenn sich ein Benutzer abmeldet, möchte ich, dass die Sitzung gelöscht wird:

  • die Sitzungsdatei muss gelöscht werden
  • die nächste Anfrage mit dem bereitgestellten Session-Cookie ist ungültig, da keine passende Session gefunden werden kann

Solange ich jedoch den privaten Schlüssel zum Signieren von Cookies nie ändere, ist die Sitzung für immer gültig.

Ich könnte dieses Problem umgehen, indem ich ein Flag für das Sitzungsobjekt verwende, das anzeigt, ob die Sitzung noch gültig ist, aber das würde mich dazu bringen, die Sitzungen manuell aus dem Dateisystemspeicher zu entfernen.

Anfrage

Ist es möglich, eine Funktion wie filesystemStore.RemoveSession(id string) hinzuzufügen, damit der Store die Sitzung vom Dateisystem und vom Speicher geladene Sitzungen bereinigen kann?

documentation

Hilfreichster Kommentar

Wenn Sie sess.MaxAge(-1) und dann sess.Save aufrufen, wird die Sitzung gelöscht: https://github.com/gorilla/sessions/blob/master/store.go#L213 -L223

Dokumente hier: http://www.gorillatoolkit.org/pkg/sessions#FilesystemStore.Save

Speichern fügt der Antwort eine einzelne Sitzung hinzu.

Wenn Options.MaxAge der Sitzung <= 0 ist, wird die Sitzungsdatei aus dem Speicherpfad gelöscht. Mit diesem Prozess erzwingt es die ordnungsgemäße Handhabung von Sitzungscookies, sodass Sie der Cookie-Verwaltung im Webbrowser nicht vertrauen müssen.

Hoffe das klärt.

Alle 3 Kommentare

Wenn Sie sess.MaxAge(-1) und dann sess.Save aufrufen, wird die Sitzung gelöscht: https://github.com/gorilla/sessions/blob/master/store.go#L213 -L223

Dokumente hier: http://www.gorillatoolkit.org/pkg/sessions#FilesystemStore.Save

Speichern fügt der Antwort eine einzelne Sitzung hinzu.

Wenn Options.MaxAge der Sitzung <= 0 ist, wird die Sitzungsdatei aus dem Speicherpfad gelöscht. Mit diesem Prozess erzwingt es die ordnungsgemäße Handhabung von Sitzungscookies, sodass Sie der Cookie-Verwaltung im Webbrowser nicht vertrauen müssen.

Hoffe das klärt.

Schließung - bei Fragen bitte wieder öffnen!

Sie fragen sich, wie Sie den Fall mit veralteten Sitzungsdateien handhaben sollen, z. B. wird eine Sitzung im privaten Modus des Browsers authentifiziert und würde sich später offensichtlich nicht wieder abmelden und ein Signal zum Entfernen der Sitzungsdatei geben, gibt es eine empfohlene Vorgehensweise für einen solchen Fall? ?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen