我有一个自定义用户模型,我想在其中跟踪失败的登录尝试次数并据此采取行动。我想知道写这个逻辑的更好的地方是什么。
以下是我在更新用户模型中的 *failed_attempts* 字段时想到的两个选项:
- 在后端验证方法。
- User 模型中的 *check_password* 方法。我已经从 AbstractBaseUser 模型中覆盖了这个方法。
基本逻辑(不包括所有情况)是这样的:
- 如果身份验证失败,请检查上一次登录尝试失败的时间。
- 如果那是最近的,则增加失败的登录计数。
- 如果计数达到最大尝试锁定帐户几分钟(或做其他事情)。
我的问题是写这个逻辑的更好的地方是什么以及为什么。