Sessions: Удаление сеанса при использовании FilesystemStore

Созданный на 27 янв. 2017  ·  3Комментарии  ·  Источник: gorilla/sessions

Привет, сначала спасибо за этот пакет, им действительно легко пользоваться.

Проблема

Если я правильно понимаю, при использовании хранилища файловой системы для сеансов файлы cookie сеанса, которые получает клиент, содержат только идентификаторы сеансов (поскольку это не CookieStore). Бэкэнд извлекает по HTTP-запросу сеанс из файловой системы и загружает его в память (или один раз в памяти и сохраняет для последующих запросов).

Почему нет функции удаления сеансов из хранилища файловой системы / в памяти?

Мой текущий сценарий следующий; Когда пользователь выходит из системы, я хочу, чтобы сеанс был удален:

  • файл сеанса должен быть удален
  • следующий запрос с предоставленным файлом cookie сеанса будет недействительным, так как соответствующий сеанс не может быть найден

Однако прямо сейчас, если я никогда не изменю закрытый ключ для подписи файлов cookie, сеанс будет действителен вечно.

Я мог бы обойти эту проблему, установив флаг на объекте сеанса, указывающий, что сеанс все еще действителен, но это оставило бы мне необходимость вручную удалять сеансы из хранилища файловой системы.

Запрос

Можно ли добавить такую ​​функцию, как filesystemStore.RemoveSession(id string) чтобы позволить хранилищу очистить сеанс от файловой системы и сеансов, загруженных в память?

documentation

Самый полезный комментарий

Установка sess.MaxAge(-1) и последующий вызов sess.Save удалит сеанс: https://github.com/gorilla/sessions/blob/master/store.go#L213 -L223

Документы здесь: http://www.gorillatoolkit.org/pkg/sessions#FilesystemStore.Save

Сохранить добавляет к ответу один сеанс.

Если Options.MaxAge сеанса <= 0, то файл сеанса будет удален из пути к хранилищу. С помощью этого процесса он обеспечивает правильную обработку файлов cookie сеанса, поэтому нет необходимости доверять управлению файлами cookie в веб-браузере.

Надеюсь, что это проясняет.

Все 3 Комментарий

Установка sess.MaxAge(-1) и последующий вызов sess.Save удалит сеанс: https://github.com/gorilla/sessions/blob/master/store.go#L213 -L223

Документы здесь: http://www.gorillatoolkit.org/pkg/sessions#FilesystemStore.Save

Сохранить добавляет к ответу один сеанс.

Если Options.MaxAge сеанса <= 0, то файл сеанса будет удален из пути к хранилищу. С помощью этого процесса он обеспечивает правильную обработку файлов cookie сеанса, поэтому нет необходимости доверять управлению файлами cookie в веб-браузере.

Надеюсь, что это проясняет.

Закрытие - пожалуйста, открывайте повторно, если у вас есть вопросы!

Хотите знать, как справиться с ситуацией с устаревшими файлами сеанса, например, какой-то сеанс аутентифицируется в частном режиме браузера, а позже, очевидно, не вернется к выходу из системы и не подаст сигнал для удаления файла сеанса, есть ли какой-либо рекомендуемый способ справиться с таким случаем ?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги