ログイン試行の失敗回数を追跡し、それに基づいてアクションを実行するカスタムユーザーモデルがあります。このロジックを書くのに良い場所はどこだろうと思います。
以下は、ユーザーモデルの*failed_attempts*フィールドを更新するために私が念頭に置いている2つのオプションです。
- バックエンドでメソッドを認証します。
- Userモデルの*check_password*メソッド。AbstractBaseUserモデルからこのメソッドをオーバーライドしました。
そして、基本的なロジック(すべてのケースを網羅しているわけではありません)は次のようになります。
- 認証が失敗した場合は、前回失敗したログイン試行の時刻を確認してください。
- それが最近の場合は、失敗したログイン数を増やします。
- カウントが最大試行に達した場合は、アカウントを数分間ロックします(または何か他のことをします)。
私の質問は、このロジックを作成するためのより良い場所とその理由です。