Salut, d'abord merci pour ce package, il est vraiment facile à utiliser.
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 :
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.
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 ?
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 ?
Commentaire le plus utile
Définir
sess.MaxAge(-1)
puis appelersess.Save
supprimera la session : https://github.com/gorilla/sessions/blob/master/store.go#L213 -L223Documents ici : http://www.gorillatoolkit.org/pkg/sessions#FilesystemStore.Save
Espérons que cela clarifie.