gpt4 book ai didi

php - 捕获 session 超时 Symfony2

转载 作者:可可西里 更新时间:2023-11-01 13:50:55 25 4
gpt4 key购买 nike

我有一个关于 Symfony2 的问题,我希望有人能帮助我。Symfony 在哪里检查用户 session ,如果没有 session 该怎么办。比如重定向到登录页面。

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

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

谢谢!

最佳答案

你必须创建监听器

Registering Event Listeners and Subscribers

配置文件:

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

如果 session 超时,则在 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);

关于php - 捕获 session 超时 Symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10846970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com