Сессионная проблема в Синатре - PullRequest
2 голосов
/ 30 декабря 2010

Мое приложение 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

Может быть, я пропустил некоторыевещь здесьКто-нибудь знает в чем может быть проблема?или была такая же проблема?Или какая-нибудь ссылка?

Ура,

Джонас

1 Ответ

2 голосов
/ 31 декабря 2010

Удаляет: expire_after и останавливает сеанс, сохраняющийся при закрытии браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...