基本用户帐户锁定系统

basic user account lockout system

我目前有一个带有用户帐户和登录系统的系统。我正在尝试实现 "lockout" 功能,以便在 3 次错误密码尝试后,用户将被锁定。目前这只涉及弹出窗口 window,并且只是警告用户而不是将他们锁定。我正在尝试找到一种基于超时的好方法,以便在一定时间后用户可以再次尝试访问他们的帐户。

我的一个想法是将锁定时间写入文本文件,然后让系统从该文本文件中检查之前的锁定时间,如果时间足够则允许登录,但这似乎是解决这个问题的一种不优雅的方法。

还有其他方法可以做到吗?谢谢

通常,您会使用包含

字段的数据库
id
username
password
failedAttempts (int)
lastFailed (date)
lastLogin (date)

当他们登录失败时,您增加 failedAttempts 并将时间保存在 lastFailed 中。

然后在登录时检查是否 (failedAttempts < threshold) 或 ((now - lastFailed) > timeThreshold)。

登录时重置 failedAttempts = 0,lastFailed = null