跳转到主要内容

Django应用,在多次登录尝试失败后锁定用户。

项目描述

Django应用,在多次登录尝试失败后直到释放时间过期将锁定用户。

已在Django 1.4.5上测试。

需求

  • Django

安装

  1. 使用pip安装python库:pip install django-cerberus

  2. cerberus添加到Django设置文件中的INSTALLED_APPS

  3. 同步数据库

使用

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)。

作者

此库由来自Pragmatic Mates的Erik Telepovsky编写。请参阅我们的其他库

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

django-cerberus-0.3.5.tar.gz (5.2 kB 查看散列)

上传时间

由以下支持