django应用程序,在多次登录失败后锁定用户。

django-cerberus的Python项目详细描述


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

在Django 1.4.5测试。

要求

  • Django

安装

  1. 使用pip安装python库:pip install django cerberus
  2. cerberus添加到django设置文件中的INSTALLED_APPS
  3. 同步数据库

用法

cerberus.decorators.watch_loginsdecorator添加到登录视图中。示例:

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_尝试次数
最大登录失败次数。默认值:5.
cerberus锁定时间
忘记失败登录尝试后的秒数(秒)。默认值:600.

型号

每个锁定模型实例都包含用户名、登录失败次数、IP地址、用户代理详细信息, 获取和发布参数,锁定时的信息(用户至少尝试使用错误的凭据登录 CERBERUS_MAX_ATTEMPTS次)以及锁定是否过期(基于CERBERUS_LOCKOUT_TIME)。

模板

如果愿意,可以重写cerberus/lockout.html模板。存在lockout实例和lockout_time变量 (cerberus锁定时间)在模板上下文中可用。

作者

图书馆由Pragmatic Mateserik telepovsky提供。见our other libraries

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java传递位置作为FragmentPagerAdapter中片段的参数   html Java Jsoup循环打印   java如何使用FileOutputStream写入数据而不丢失旧数据?   java在测试用例类/方法中执行sql before/after/in   java在javafx中注册鼠标处理程序,但处理程序不是内联的   Android嵌入了一个C++库的java代码,不需要TopPLE程序来嵌入它?   片段类内部的java ProgressBar导致setMax方法出现NullPointerException?   带有google app engine的java Activator Play框架   java如何解析星级而不是字符串?   java如何在基本实体中定义通用主键字段?   通过扩展实现Java克隆   使用CipherOutputStream的java递归加密提供一个空字节[]   在运行时提取字段值的Java服务   Java 11和spring boot从spring boot应用程序的fat jar中的依赖项jar加载资源   java尝试使用J2SE枚举所有可用的Wifi网络   使用Java库进行SWIFT MT消息解析   java拆分非逗号分隔的字符串   java为什么toString()不能是静态方法?   java在连接到集群数据库时遇到mongo异常   java访问Hashmap中存储的json有效负载值