Php 15分钟不活动后,symfony framework中的应用程序内的会话应过期

Php 15分钟不活动后,symfony framework中的应用程序内的会话应过期,php,symfony,Php,Symfony,15分钟不活动后,symfony中应用程序内的会话应过期 到目前为止,我已经尝试过: 在config.yml文件中设置 session: cookie_lifetime: 900 它将在15分钟内从应用程序中注销。即使用户处于活动状态。 但是我想显示用户是否在15分钟内处于非活动状态。然后应该注销。否则就不应该 有人知道吗?小心点,这是下一级的把戏,我不是这方面的专家 如果您有一个表示用户的自定义用户实体,您可以向其中添加一个名为“last_activity”的新成员,并在访问控制器方

15分钟不活动后,symfony中应用程序内的会话应过期

到目前为止,我已经尝试过: 在config.yml文件中设置

session:
    cookie_lifetime: 900
它将在15分钟内从应用程序中注销。即使用户处于活动状态。 但是我想显示用户是否在15分钟内处于非活动状态。然后应该注销。否则就不应该


有人知道吗?

小心点,这是下一级的把戏,我不是这方面的专家

如果您有一个表示用户的自定义用户实体,您可以向其中添加一个名为“last_activity”的新成员,并在访问控制器方法时检查他是否仍然处于活动状态:

$user->last_activity + 900 >= time()
如果是真的,请注销用户。否则,只需通过以下方式修改最后一个活动:

$user->last_activity = time();

可能有更好的解决方案(Symfony native),但我不知道,所以请随意完成:)

我认为正确的方法如下:

session:    
    cookie_lifetime: 7200
    gc_maxlifetime: 900

您可以在这里进一步阅读:

但我没有了解什么是“最后的活动”?是用户表中存储用户活动的新字段吗?如果我的解释不太好,我很抱歉。如果Symfony没有为您的会话提供跟踪“真实活动”的工具,那么您必须自己完成。在我看来,我提到的“最后一个_活动”是一个时间戳,它将被存储到用户会话类中。若您不需要其他人来查看谁处于活动状态,那个么就不需要将其存储在数据库中。