如何检测用户是否登录symfony?

时间:2012-05-24 14:20:43

标签: php symfony1 symfony-1.4 sfdoctrineguard

如果应用程序中记录了symfony中的特定用户,我需要知道如何获取, 有没有办法获取当前用户的会话ID?

当我有一个名为is_online的字段时,我尝试使用表格,当用户登录并注销应用程序时,我设置了它,所以当用户关闭浏览器或会话时出现问题结束,所以字段is_online保持不变。这就是为什么我需要另一种方法来获取用户登录应用程序的原因。

任何建议都会有用。

2 个答案:

答案 0 :(得分:4)

您可以向用户发送ajax请求,并且一旦有人不发送请求,例如1分钟将其状态更改为离线。将状态存储在某些键值存储(即MemCache)中是个好主意。在这里查看details

答案 1 :(得分:1)

在ajax中创建类似lastonlinetstampping方法的数据库字段,每分钟调用一次具有相同会话的服务。然后让ping服务更新lastonlinetstamp。如果此值超过1分钟,则表示用户处于脱机状态。 但是:这会增加对服务器的请求数量。