我遇到一些問題,不知道爲什麼,當我從我的應用程序中註銷時,由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