2014-03-03 31 views
3

在Symfony中,可以通過在security.yml文件中添加invalidate_session: false來避免會話在註銷時被破壞。Silex SessionLogoutHandler

這是可悲的不工作在Silex。在Silex的有一個事件監聽SessionLogoutHandler的呼叫:

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

此事件偵聽將在SecurityServiceProvider添加:

$listener->addHandler(new SessionLogoutHandler());

我沒有發現任何可能不添加或刪除該處理程序...或者我錯過了什麼?

感謝您的答案。

[更新]

審查在https://github.com/silexphp/Silex/pull/916

回答

0

正如你可以重寫$app['security.authentication_listener.logout._proto']它默認有非常相同的代碼一個短期的解決方案我拉的要求,除了註冊事件監聽器你」重新遇到問題。

對於長期的解決方案(如果您想出了一種可行的方法),您可以在github上分配silex,添加一種方法來選擇性地將其關閉,然後發送拉取請求,以便其他人從您的工作中受益爲以及:)

+2

我已經做了長期的解決方案;-)在https://github.com/silexphp/Silex/pull/916回顧我的拉請求 – neeg