Мое приложение sinatra использует Rack :: Session :: Pool, и оно отлично работает.
Я создал маршрут выхода из системы, используя session.clear
, и он также отлично работает.
Но (тамвсегда равен единице) если пользователь закрывает браузер, не нажимая кнопку выхода, он продолжает входить в систему при повторном открытии браузера.
Я проверил файлы cookie в Firefox, и файл cookie сеанса (rack.session) все еще там!Я зашел на свой сайт, зашел на другой сайт, проверил файлы cookie и они были там, закрыл браузер и снова открыл его, а стойка все еще там :( Мой клиент даже перезагрузил свой компьютер, и он все еще вошел на сайт.
Если я устанавливаю expire_date в Rack :: Session :: Pool, он работает, но затем файл cookie становится постоянным. Я хочу, чтобы сессия пользователя заканчивалась, когда он закрывал браузер, независимо от даты истечения срока действия (в худшем случаепользователь на общедоступном компьютере или в локальной сети).
Я уже работаю над этим в течение 2 дней, я посмотрел источник в стойке и попытался установить другие переменные в Rack :: Session:: Аннотация, но безуспешно до сих пор.
На данный момент я установил истечение сеанса через 5 минут, чтобы минимизировать проблему, но это не хорошее решение, так как пользователь все еще выставлялся в течение 5 минут с момента его последнего запроса (если пользователи не нажимают кнопку выхода).
Это моя конфигурация cookie:
app = MyApp.new
sessioned = Rack::Session::Pool.new(app,
:domain => DOMAIN,
:expire_after => 5 * 60)
run sessioned
Может быть, я пропустил некоторыевещь здесьКто-нибудь знает в чем может быть проблема?или была такая же проблема?Или какая-нибудь ссылка?
Ура,
Джонас