我的想法是Symfony2会在经过身份验证的会话期间对每个页面请求进行扩展ExpireAt
。因此,如果超时为100秒并且您发出了页面请求,则新的ExpireAt
将为time() + 100
。这种“使用它或丢失它”的身份验证功能类似于您在银行网站上获得的功能。
默认功能似乎是在100
中将会话超时设置为config.yml
时,用户只有100秒才能完成所需操作。
我认为这不会难以实施,但应该在哪里完成?我的第一个猜测是isEqualTo
方法。一旦您确定用户是真实的,您就可以重新启动他们的expireAt
。或者是否需要修改cookie?
答案 0 :(得分:0)
答案取决于refreshUser
的{{1}}方法和UserProvider
的{{1}}方法。
isEqualTo
方法告诉用户提供商是否UserClass
。
isEqualTo
(随着您的理解增长,这种逻辑也会增长。但实际上,这会触发refreshUser(UserInstance user)
。在所有基本用户提供商示例中,isEqualTo() returns false;
& refreshUser()
是完全相同的。要做我正在谈论的事情,refreshUser
需要有所不同。
loadUserByUsername
。传递给此方法的是原始userClass。因此,refreshUser负责同步refreshUser()
或refreshUser(UserInterface $user)
我在expiresAt
中使用此逻辑来延长到期日期或将其设置为原始到期日期(已过期):
credentialsExpireAt