在通过登录对用户进行身份验证之前,如何验证用户一段时间的非活动状态


How can I validate a user for a period of inactivity before authenticating them via login?

我正在使用Symfony2,并希望实现用户登录规则,我检查用户是否在特定时间段内未登录,如果是,我会锁定他们的帐户并拒绝他们进入。

到目前为止,我发现Symfony2中的身份验证事件仅包含成功和失败。成功事件在用户登录后触发,因此此时其 lastLogin 字段已更新。

我可以在用户上创建自己的lastSystemUse日期字段,但是,这似乎没有必要,因为已经有一个lastLogin字段。我希望能够挂接到在用户进行身份验证之前触发的事件。

或者,是否可以仅将验证器附加到登录过程。 即lastLogin>天数,但不将验证附加到注册过程?

谢谢

您可以创建自定义身份验证提供程序: http://symfony.com/doc/current/components/security/authentication.html#authentication-providers

大多数情况下,我在由 cron 运行的命令中做这种事情。在您的情况下,您可以创建命令,该命令将检查所有用户的上次登录日期并阻止长时间未登录的用户。