2011年2月8日火曜日

django-axesでlogin lock

djangoでadminやloginに複数回のログイン失敗に対してlockをかけ設定した時間が経過しないとログインできないようにしたいならdjango-axes
ドキュメントとおりにインストールしてdjangoに設定すればOK

ソース読めば分かるけれど、ドキュメントにない設定もある。使うのは、
#失敗した後ロックされる時間
AXES_COOLOFF_TIME = 3 #hour
#ロックされたときに使うテンプレート
AXES_LOCKOUT_TEMPLATE = 'account_locked.html'

あと、
settings.pyで
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
と設定しているから
LOGFILE = os.path.join(settings.DIRNAME, 'axes.log')

LOGFILE = os.path.join(settings.PROJECT_ROOT, 'axes.log')
としてプロジェクトディレクトリにlogin履歴がaxes.logに書き込まれる。


AXES_LOCKOUT_TEMPLATEには
'cooloff_time': COOLOFF_TIME,
'failure_limit': FAILURE_LIMIT,
が渡されるので好きにしてよい。

デコレーターなので自前のログイン関数にも
from axes.decorators import watch_login
.......
@watch_login
def login(request):
でOK


本家はここ。 TNX!

0 件のコメント:

コメントを投稿