我遇到一些问题,不知道为什么,当我从我的应用程序中注销时,由FOSUserBundle处理,因为当前会话永远不会被销毁,甚至无法清除哪些会导致问题当我重新登录时,因为我在会话中存储了一些数据。这是我的security.yml
看起来像:注销不会在FOSUserBundle中正确销毁/清除会话
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中的工作方式有关?我正在阅读docs,但对我而言并不清楚,而且我也不知道这是否是原因,因为从应用程序注销时,会话未正确销毁。对此有何解释?如果我没有弄错我的应用程序会自动注销用户,当10分钟通过而不做任何事时,意味着不活动,我是对的?但是GC部分在这个配置上做了些什么或什么?我从this这个主题开始了这个配置,但是还没有明白。作为附加说明,我正在使用Firefox | Chrome浏览器在私人窗口中工作,因此不存在来自浏览器的缓存。
我很好奇,一个可能的答案,因为我注意到这个问题也在我从fosuserbundle注销。 – Matheno
你有什么实际问题?你说注销问题,但它不完全清楚你正在经历什么。 –
基本上,用户的会话在注销后保持活动状态。 – Matheno