【Django】ログイン時に「Account locked: too many login attempts. Contact an admin to unlock your account.」と表示される。
他の方が作っていた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アドレスのレコードを解除するというのが良いでしょう。
ディスカッション
コメント一覧
まだ、コメントがありません