Symfony根据请求扩展身份验证超时

时间:2012-12-13 16:26:47

标签: authentication symfony security

我的想法是Symfony2会在经过身份验证的会话期间对每个页面请求进行扩展ExpireAt。因此,如果超时为100秒并且您发出了页面请求,则新的ExpireAt将为time() + 100。这种“使用它或丢失它”的身份验证功能类似于您在银行网站上获得的功能。

默认功能似乎是在100中将会话超时设置为config.yml时,用户只有100秒才能完成所需操作。

我认为这不会难以实施,但应该在哪里完成?我的第一个猜测是isEqualTo方法。一旦您确定用户是真实的,您就可以重新启动他们的expireAt。或者是否需要修改cookie?

1 个答案:

答案 0 :(得分:0)

答案取决于refreshUser的{​​{1}}方法和UserProvider的{​​{1}}方法。

isEqualTo方法告诉用户提供商是否UserClass

  • 第1步isEqualTo(随着您的理解增长,这种逻辑也会增长。但实际上,这会触发refreshUser(UserInstance user)

在所有基本用户提供商示例中,isEqualTo() returns false;& refreshUser()是完全相同的。要做我正在谈论的事情,refreshUser需要有所不同。

  • 第2步:修改loadUserByUsername。传递给此方法的是原始userClass。因此,refreshUser负责同步refreshUser()refreshUser(UserInterface $user)

我在expiresAt中使用此逻辑来延长到期日期或将其设置为原始到期日期(已过期):

credentialsExpireAt