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


How to detect if a user is logged in symfony?

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

当我有一个名为 is_online 的字段时,我尝试使用表格,并且在用户登录和注销应用程序时设置了它,因此当用户关闭浏览器或会话结束时,我遇到了问题,因此该字段is_online保持真实。这就是为什么我需要另一种方法来获取用户是否登录应用程序的原因。

任何建议都将是有用的。

您可以从用户发送 ajax 请求,一旦有人不发送请求,例如 1 分钟,就将其状态更改为离线。将状态存储在一些键值存储中是个好主意,即 MemCache。查看此处了解详细信息。

在 ajax 中创建一个数据库字段(如 lastonlinetstamp)和一个 ping 方法,该方法每分钟调用具有相同会话的服务。然后让 ping 服务更新lastonlinetstamp。如果此值早于 1 分钟,则表明用户处于脱机状态。但是:这将增加对服务器的请求数。