DJANGO访问配置文件页面上需要新鲜登录



我是Django的新手,并为我的应用程序编写身份验证系统。现在,我已经建立了基本的登录/注销功能。

我想要的是,每当登录用户想要访问其个人资料页面时,都应要求他们确认其密码。

我已经在Django文档上搜索了此信息,但是我找不到有关如何实现的资源。我知道烧瓶有一个fresh_login_required装饰器,它可以做到这一点,只是想知道是否也可以与Django一起做同样的事情。

我认为Django中没有任何功能。但是,您可以在 django session 的帮助下独自编写。例如:

首先,我们需要写一个装饰器:

# decorator
def require_fresh_login(function):
  @wraps(function)
  def wrap(request, *args, **kwargs):
        has_verified_profile = request.session.pop('has_login_verified',None)
        if has_verified_profile:
             return function(request, *args, **kwargs)
        else:
            return redirect(reverse('fresh_password_view_url'))
  return wrap

然后应该有一个fresh_password_view_url的视图,其中您需要在request.session中对密钥has_login_verified进行值。例如:

def verify_fresh_password(request):
    form = SomeForm(request.POST)
    if form.is_valid():
        password = form.cleaned_data.get('password')
        if request.user.check_password(password):
           request.session['has_login_verified'] = True
           return redirect('profile_view')
    # else send error response

最新更新