Php 使用Symfony会话超时后如何重定向到登录页面?

Php 使用Symfony会话超时后如何重定向到登录页面?,php,symfony,security,session,Php,Symfony,Security,Session,我的问题是,当会话超时时,我刷新页面,然后出现500个错误: 无法访问空变量上的属性(“id”) 因为“id”是空的 我想重定向到登录页面,当用户刷新页面并且他的会话已过期时。我怎么做 这件事我做错了 我尝试将侦听器与内核操作一起使用: 我将TokenStorageInterface修改为AuthorizationChecker 由于此错误: 类型错误:参数2传递给 GE\CandidateBundle\EventListener\SessionIdleHandler::\uu构造()必须 实现

我的问题是,当会话超时时,我刷新页面,然后出现500个错误:

无法访问空变量上的属性(“id”)

因为“id”是空的

我想重定向到登录页面,当用户刷新页面并且他的会话已过期时。我怎么做

这件事我做错了

我尝试将侦听器与内核操作一起使用:

我将TokenStorageInterface修改为AuthorizationChecker

由于此错误:

类型错误:参数2传递给 GE\CandidateBundle\EventListener\SessionIdleHandler::\uu构造()必须 实现接口 Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface, 实例 Symfony\Component\Security\Core\Authorization\AuthorizationChecker 给定

在parameters.yml中:

parameters:
    ...
    session_max_idle_time: 1800

现在,当我刷新页面时,出现500个错误,它不工作。

我想我也有同样的问题()。你曾经得到过答案吗。我曾两次试图寻求帮助回答我的问题,但都没有人回复。我在twpug.net/docs/Symfony2.pdf上找到了关于使用防火墙配置处理此问题的参考资料,从第150页开始。上面写着:。。。当您激活注销配置参数时,防火墙可以自动为您处理此(注销):一旦在防火墙下配置此参数,将用户发送到/注销将取消对当前用户的身份验证。然后,用户将被发送到主页(目标参数定义的值)。路径和目标配置参数都默认为此处指定的参数。不幸的是,关于如何做到这一点的实际细节缺失了。
my.handler.session_idle:
    class: GE\CandidatBundle\EventListener\SessionIdleHandler
    arguments: ["@session", "@security.authorization_checker", "@router", %session_max_idle_time%]
    tags:
        - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
parameters:
    ...
    session_max_idle_time: 1800