Django应用,在多次登录尝试失败后锁定用户。
项目描述
Django应用,在多次登录尝试失败后直到释放时间过期将锁定用户。
已在Django 1.4.5上测试。
需求
Django
安装
使用pip安装python库:pip install django-cerberus
将cerberus添加到Django设置文件中的INSTALLED_APPS
同步数据库
使用
将cerberus.decorators.watch_logins装饰器添加到您的登录视图。示例
class LoginView(FormView): template_name = 'example/login.html' form_class = AuthenticationForm @method_decorator(watch_logins) def dispatch(self, request, *args, **kwargs): if request.user.is_authenticated(): return redirect(settings.LOGIN_REDIRECT_URL) return super(LoginView, self).dispatch(request, *args, **kwargs) def form_valid(self, form): user = form.get_user() login(self.request, user) return super(LoginView, self).form_valid(form) def get_success_url(self): return reverse('logged_in')
设置
- CERBERUS_MAX_ATTEMPTS
最大失败登录尝试次数。默认:5。
- CERBERUS_LOCKOUT_TIME
秒数,在秒后忘记失败登录尝试。默认:600。
模型
每个锁定模型实例包含用户名、失败登录尝试次数、IP地址、用户代理详情、GET和POST参数、锁定是否锁定(用户至少以错误的凭据尝试登录了CERBERUS_MAX_ATTEMPTS次)以及锁定是否过期(基于CERBERUS_LOCKOUT_TIME)的信息。
模板
如果您想覆盖cerberus/lockout.html模板,可以这样做。模板上下文中可用lockout实例和lockout_time变量(CERBERUS_LOCKOUT_TIME)。
项目详情
关闭
django-cerberus-0.3.5.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | a13834d0a72508f28ce9c61d6dccf3c6d3d03cd9565835138fc4f25d396c4980 |
|
MD5 | 11115f7c434f1c6ed8045bbbc57288e2 |
|
BLAKE2b-256 | dd95026caaa4cdd39c7a5cecf98fa18b67841d22d23566ad416e0a4276939cff |