Intereting Posts
Непоследовательная сериализация сеанса на серверах Как получить текущее название маршрута в laravel 5? Apache 2.4 работает очень медленно на Windows 8 – 64 бит XAMPP: Не удалось запустить Apache (Windows 10) Большой PHP для цикла с SimpleXMLElement очень медленный: проблемы с памятью? Как обрабатывать форму с помощью CodeIgniter groupedFor – группировка объектов по датам Расширение DOMDocument и DOMNode: проблема с объектом возврата Черты – конфликт свойств с родительским классом Проверьте, не переданы ли какие-либо переменные в GET Сделайте форму в php, которая сохраняет информацию, которую пользователь дает, и подключает ее к другой печатной странице ZF2 + Doctrine 2 – дискриминаторы на уровне ребенка с наследованием класса PHP: создание уникальных переменных в A для цикла Матч закрытых тегов html с использованием регулярных выражений и php : не удалось открыть поток: HTTP-запрос не удался! HTTP / 1.0 400 Bad Request

Выход из системы не уничтожает / очищает сеанс должным образом в FOSUserBundle

У меня проблемы, не знаю, почему, когда я выхожу из своего приложения, которое обрабатывается FOSUserBundle, поскольку текущий сеанс никогда не уничтожается или даже не очищается, что вызывает проблемы при входе в систему, потому что я храню некоторые данные в сеансе. Вот как выглядит мой security.yml :

 security: encoders: FOS\UserBundle\Model\UserInterface: sha512 role_hierarchy: ROLE_USER: ROLE_USER ROLE_ADMIN: ROLE_ADMIN providers: fos_userbundle: id: fos_user.user_provider.username_email firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: pattern: ^/ form_login: provider: fos_userbundle csrf_provider: form.csrf_provider login_path: /login check_path: /login_check default_target_path: home always_use_default_target_path: true logout: path: fos_user_security_logout target: / invalidate_session: false anonymous: ~ access_control: ... 

И вот как ключи session настроены в config.yml :

 session: # handler_id set to null will use default session handler from php.ini handler_id: ~ cookie_lifetime: 86400 gc_maxlifetime: 600 # session will expire after 10 minutes of inactivity gc_probability: 1 gc_divisor: 1 

Мне здесь что-то не хватает?

В качестве второй части этого вопроса у меня есть большие сомнения, поскольку это что-то новое для меня, и это связано с тем, как сбор мусора работает в Symfony2? Я читал документы вокруг него, но мне непонятно, и я не знаю, является ли это причиной, потому что сеанс не уничтожается должным образом, когда я выхожу из приложения. Любое объяснение вокруг этого? Если я не ошибаюсь, мое приложение автоматически выйдет из системы, когда 10 минут пройдет, не делая ничего, что означает бездействие , я прав? Но как и что делает GC для этой конфигурации? Я беру эту конфигурацию из этой темы, но пока не понимаю ее.

В качестве дополнительной заметки я работаю с Firefox | Chrome как в частных окнах, так и в кеше из браузера не должно существовать.

invalidate_session в файле security.yml по умолчанию установлен в значение true , в вашем config его false , попробуйте изменить его на true .

Для пояснения здесь приведен код из SecurityExtension.php

 if (true === $firewall['logout']['invalidate_session'] && false === $firewall['stateless']) { $listener->addMethodCall('addHandler', array(new Reference('security.logout.handler.session'))); } 

и 'security.logout.handler.session' :

 public function logout(Request $request, Response $response, TokenInterface $token) { $request->getSession()->invalidate(); } 

….