Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django强制密码过期_Django_Passwords - Fatal编程技术网

Django强制密码过期

Django强制密码过期,django,passwords,Django,Passwords,是否有django应用程序可以在某个时间间隔(如30天)后强制终止用户的密码?我正在使用djangp的auth,希望扩展它或使用社区应用程序 到目前为止,我所尝试的: 在用户配置文件中添加了一个字段,用于存储上次更新密码的日期 扩展登录方法以检查此日期,并将用户重定向到密码更改页面 我感到困惑的是: 在更改密码之前阻止用户访问网站 用户不应该能够登录或只是键入URL直接访问页面 请注意,我不想使用中间件,因为这将是一个资源约束。您似乎走对了方向。设置上次更新密码的日期,检查timedelta是否

是否有django应用程序可以在某个时间间隔(如30天)后强制终止用户的密码?我正在使用djangp的auth,希望扩展它或使用社区应用程序

到目前为止,我所尝试的:

  • 在用户配置文件中添加了一个字段,用于存储上次更新密码的日期
  • 扩展登录方法以检查此日期,并将用户重定向到密码更改页面
  • 我感到困惑的是:

  • 在更改密码之前阻止用户访问网站
  • 用户不应该能够登录或只是键入URL直接访问页面

  • 请注意,我不想使用中间件,因为这将是一个资源约束。

    您似乎走对了方向。设置上次更新密码的日期,检查timedelta是否大于30天,如果大于30天,则重定向到更改密码页面。您的登录视图基本上应该保持不变,除非如果timedelta大于30天,则不实际将用户登录到请求对象

    from datetime import date, timedelta
    from django.contrib.auth import authenticate, login
    
    def my_view(request):
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                if date.today() - user.password_date > timedelta(days=30):
                    # Redirect to password change page
                else:
                    login(request, user)
                    # Redirect to a success page.
            else:
                # Return a 'disabled account' error message
        else:
        # Return an 'invalid login' error message.
    

    嗯,有django密码策略,

    这是有道理的,Matt。我试试这个。ThanksHow是否阻止用户访问其他视图?我尝试过使用它,但它似乎不再被维护。它不再与最新的django版本兼容(截至撰写此评论时为2.1)