session - Silex SessionLogoutHandler

标签 session symfony silex invalidation

在 Symfony 中,可以通过在 security.yml 文件中添加 invalidate_session: false 来避免 session 在注销时被破坏。

遗憾的是,这在 Silex 中不起作用。在 Silex 中有一个 EventListener SessionLogoutHandler 调用:

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

此 EventListener 将添加到 SecurityServiceProvider 中:

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

我发现不可能不添加或删除此处理程序...还是我遗漏了什么?

感谢您的回答。

[更新]

https://github.com/silexphp/Silex/pull/916 查看我的拉取请求

最佳答案

作为短期解决方案,您可以使用默认情况下使用的完全相同的代码覆盖 $app['security.authentication_listener.logout._proto'],除了注册您要注册的事件监听器有问题。

对于长期解决方案(如果你想出了一个可行的方法),你可以在 github 上 fork silex,添加一个可选择关闭它的方法,然后发送一个 pull request,这样其他人也可以从你的工作中受益:)

关于session - Silex SessionLogoutHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22147181/

相关文章:

php - 重定向后 session 丢失

php - 获取 Silex\Application 实例

javascript - if语句中的Ejs无法读取未定义的属性 ' foo '

c# - session 和数据库首选项

symfony - 将 Symfony 4 应用程序部署到 Google App Engine 时出现安全检查器错误

Symfony - 在 Controller 中使用参数生成 url

doctrine-orm - 在 silex 中使用doctrine2 sluggable 扩展

php - 自定义服务提供商的silex文件结构

linux - screen 终止后执行命令

来自数据库的 PHPUnit dataProvider