2015-04-02 1 views
0

У меня возникла «странная» проблема в приложении, над которым я работаю, и до сих пор я не могу найти исправления для этого. Приложение использует Symfony2.6.x и полагается на несколько вызовов Ajax. Все запросы времени выполняются через Ajax. Итак, когда я вхожу в приложение (использует FOSUserBundle), Symfony автоматически запускает новый сеанс, верно? Хорошо, с этого момента до момента времени, установленного в config.yml (см. Ниже) для сеанса, приложение все еще работает, но в какой-то момент меня перенаправили на страницу входа, и сессия закрыта, даже если я активно работаю над этим приложением. Мой лучший подход заключается в том, что вызовы AJAX не учитываются для времени жизни сеанса в Symfony или PHP, я прав?Сессия завершается, даже если приложение работает, и люди работают над ним

Мой лучший подход и решение по этой проблеме, не знаю, прав ли я и ни один из них не пытался, я хочу услышать мнение некоторых здесь, в SO, заключается в том, чтобы восстановить идентификатор сеанса (путем вызова migrate() на текущем активном сеансе) каждый раз, когда вызов AJAX выполняется таким образом, что сеанс будет поддерживать активный, правильно ли этот подход? Есть какие-нибудь советы по этому поводу?

Это моя конфигурация в config.yml для секции сеанса:

config.yml 

framework: 
    session: 
     # session will expire after 10 minutes of inactivity 
     handler_id: ~ 
     cookie_lifetime: 2400 
     gc_maxlifetime: 600 # session will expire after 10 minutes of inactivity 
     gc_probability: 0 
     gc_divisor: 100 

Примечание:this post и this other от меня говорит о том же принципе, но я до сих пор не устранить эту проблему, и это убивает мое приложение и моя голова пытается найти решение.

ответ

2

Вопросы:
- Вы работаете удаленно? Если это так, у вас есть изменения, которые вы автоматически сохраняете автоматически на сервере, или вам нужно сохранить их вручную, чтобы они стали работать?
- Вы рассчитали продолжительность вашей реальной сессии (от входа в систему до отключения)? Это один и тот же отрезок времени?
Гостей:
Без вышеуказанного я считаю, что ваша проблема заключается в настройках параметров истечения срока действия сеанса, и там может быть какое-то событие на линии (между вами и сервером), которая вызывает сброс сеанса. [Вы пытались работать с двумя открытыми окнами? Вы знаете, логин, а затем работать в другом окне, но сохранить пост логин один открыто ...]
Если это из-за короткий сеанс настройки, чем пожалуйста, попробуйте следующее:
php_value session.cookie_lifetime 0
php_value сессия. gc_maxlifetime 60000
Это дает вам много времени на сеанс или пока вы не закроете браузер/не отключите соединение ...

+0

Что вы имеете в виду с _work удаленно? _ Я не буду следовать за вами в этом ответе. Что касается второго ответа, я не сделал этого, но если срок действия сеанса установлен на 10 минут, и я прохожу на 15 минут, активно работая на странице, почему он закрывается? Это мое беспокойство. Что мне нужно с этим легко: если пользователь не работает в приложении, потому что он/она уходит или просто покидает окно | браузер открыт и уходит тогда, когда это произойдет, а количество раз 10 минут, приложение должно закончиться (переходит на экран входа в систему) в противном случае следует продолжать работать как обычно. Я пробовал с несколькими настройками для истечения срока действия сеанса без успеха, так что я так не думаю – ReynierPM

+0

Вы работаете на машине или работаете с ней? Это то, что я просил ... –

+0

Ах да, у меня есть виртуальная машина, работающая CentOS, синхронизированная с временем и датой хоста Windows, поэтому сайт находится на виртуальной машине, это ответит на ваш вопрос? – ReynierPM

 Смежные вопросы

  • Нет связанных вопросов^_^