Sessions: Suppression d'une session lorsque FilesystemStore est utilisé

Créé le 27 janv. 2017  ·  3Commentaires  ·  Source: gorilla/sessions

Salut, d'abord merci pour ce package, il est vraiment facile à utiliser.

Problème

Si je comprends bien, lors de l'utilisation du magasin de système de fichiers pour les sessions, les cookies de session que le client obtient ne contiennent que les identifiants des sessions (car ce n'est pas un CookieStore). Le backend récupère sur une requête http la session du système de fichiers et la charge en mémoire (ou une fois en mémoire et la conserve pour les requêtes suivantes).

Pourquoi n'y a-t-il pas de fonction pour supprimer les sessions du magasin/en mémoire du système de fichiers ?

Mon scénario actuel est le suivant ; Lorsqu'un utilisateur se déconnecte, je souhaite que la session soit supprimée :

  • le fichier de session doit être supprimé
  • la prochaine demande avec le cookie de session fourni sera invalide car aucune session correspondante ne peut être trouvée

Cependant, tant que je ne change jamais la clé privée pour signer les cookies, la session sera valide pour toujours.

Je pourrais contourner ce problème en ayant un indicateur sur l'objet de session indiquant si la session est toujours valide, mais cela me laisserait obligé de supprimer manuellement les sessions du magasin du système de fichiers.

Demande

Est-il possible d'ajouter une fonction comme filesystemStore.RemoveSession(id string) pour permettre au magasin de nettoyer la session du système de fichiers et des sessions chargées en mémoire ?

documentation

Commentaire le plus utile

Définir sess.MaxAge(-1) puis appeler sess.Save supprimera la session : https://github.com/gorilla/sessions/blob/master/store.go#L213 -L223

Documents ici : http://www.gorillatoolkit.org/pkg/sessions#FilesystemStore.Save

Enregistrer ajoute une seule session à la réponse.

Si Options.MaxAge de la session est <= 0, le fichier de session sera supprimé du chemin du magasin. Avec ce processus, il applique correctement la gestion des cookies de session, il n'est donc pas nécessaire de faire confiance à la gestion des cookies dans le navigateur Web.

Espérons que cela clarifie.

Tous les 3 commentaires

Définir sess.MaxAge(-1) puis appeler sess.Save supprimera la session : https://github.com/gorilla/sessions/blob/master/store.go#L213 -L223

Documents ici : http://www.gorillatoolkit.org/pkg/sessions#FilesystemStore.Save

Enregistrer ajoute une seule session à la réponse.

Si Options.MaxAge de la session est <= 0, le fichier de session sera supprimé du chemin du magasin. Avec ce processus, il applique correctement la gestion des cookies de session, il n'est donc pas nécessaire de faire confiance à la gestion des cookies dans le navigateur Web.

Espérons que cela clarifie.

Fermeture - veuillez rouvrir si vous avez des questions !

Vous vous demandez comment gérer le cas avec des fichiers de session obsolètes, par exemple une session est authentifiée en mode privé du navigateur et plus tard, évidemment, ne reviendrait pas à la déconnexion et ne donnerait pas le signal pour la suppression du fichier de session, existe-t-il un moyen recommandé de gérer un tel cas ?

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

danvonk picture danvonk  ·  9Commentaires

marksalpeter picture marksalpeter  ·  17Commentaires

CasperHK picture CasperHK  ·  11Commentaires

elithrar picture elithrar  ·  22Commentaires

elithrar picture elithrar  ·  25Commentaires