我有一个Symfony 2应用程序的自定义登录表单。在这种形式中,我有一个选项字段,有多个选项来设置登录会话的最大空闲时间。我希望能够在登录操作中设置会话生存期。遗憾的是,loginaction存储在FOSUserBundle中,因为无法修改捆绑包的未来更新。
这是我到目前为止所发现的,如果我错了,请纠正我:
首先,symfony的生命周期可以在一段时间后销毁,如here所述
其次,我必须能够捕获/拦截登录操作/验证以在parameter.yml中设置参数
然后可以在监听器中使用该参数来检查是否未超过maxlifetime
所以我的问题又分为两个问题:
提前致谢
答案 0 :(得分:2)
我猜,
您需要一个登录成功处理程序。阅读以下内容以了解
您还可以为Controller / Kernel Request Events编写EventListener,您可以在其中比较用户的空闲时间。
据我所知,为这种要求添加参数值并不是一个好主意。
如果您需要销毁用户会话,为什么不在身份验证成功处理程序中设置登录时间(可以在会话或用户实体上次登录时保存),并且在控制器侦听器中,您可以比较登录的长度和重置用户会话?