加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 捕获会话超时Symfony2

发布时间:2020-12-13 17:41:38 所属栏目:PHP教程 来源:网络整理
导读:我有一个关于Symfony2的问题,我希望有人可以帮助我. Symfony在哪里检查用户会话以及该怎么做是没有会话.喜欢重定向到登录页面. 我发现了一些类似的问题,但不是我的意思. 为什么我想知道它?如果有会话超时.我想检查调用是否是XmlHttpRequest.如果是这样,我想
我有一个关于Symfony2的问题,我希望有人可以帮助我.
Symfony在哪里检查用户会话以及该怎么做是没有会话.喜欢重定向到登录页面.

我发现了一些类似的问题,但不是我的意思.

为什么我想知道它?如果有会话超时.我想检查调用是否是XmlHttpRequest.如果是这样,我想返回一个JSON,以便javascript可以处理它.如果不是正常的方式.

谢谢!

解决方法

你必须创建监听器

Registering Event Listeners and Subscribers

config.yml:

services:
    mycompany.demobundle.listener.request:
        class: MyCompanyDemoBundleRequestListener
        arguments: [@router,@security.context]
        tags:
             - { name: kernel.event_listener,event: kernel.request,method: onKernelRequest }

如果会话超时,则在RequestListener中测试:

$inactive = 600; 
$session_life = time() - $request->getSession()->('timeout');
if($session_life > $inactive && $request->isXmlHttpRequest() )
    {  
         $headers['Content-Type'] = 'application/json';
         return new Response(json_encode($data),$status,$headers);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读