【Django】ログイン時に「Account locked: too many login attempts. Contact an admin to unlock your account.」と表示される。

Django

スポンサーリンク

他の方が作っていたDjangoのシステムでログインしようと思って、何度か失敗したら、

「Account locked: too many login attempts. Contact an admin to unlock your account.」

と表示された。

このアカウントはロックされたなーと思って他のアカウントでログインを試したら、ほかのアカウントは一回目から上のメッセージが。。

え、、、もうどのアカウントでもロックがかかっている。この原因は??

原因

これは「django-axes」ライブラリのせいなんです。

※ちなみにインストール方法は「pip install django-axes」をターミナルで実行。

「settings.py」のINSTALLED_APPSを見てみると’axes’がきっとありますよね。

これがあるとデフォルトでは3回ログインを間違うとロックされるんです。

そして、なぜ、ほかのアカウントでのログインまでロック状態になるかというと

django-axesのアカウントロックはIPアドレスごとに制限されるので、PCのIPアドレスが同じであれば、アカウント名関係なくロックされているんです。

ロックを解除する方法

開発環境であればとりあえず、

「python manage.py axes_reset」

で解除可能です。

ロックされた時のログは「axes_accessattempt」テーブルにIPアドレスとともにレコード追加されているので、上記のコマンドでこれが削除されるということですね。

実際の運用

実際の運用時は、axesのレコードはDjango管理画面から削除できるので管理者が連絡を受けて、対象のIPアドレスのレコードを解除するというのが良いでしょう。

Django

Posted by ton