Выход из системы не уничтожает / не очищает сессию должным образом в 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 в закрытых окнах, поэтому кеша из браузера не должно быть.

5

Решение

invalidate_session вариант в security.yml для файла по умолчанию установлено значение trueв твоем конфиге его 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();
}

….

10

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]