访问配置文件页面时需要Django新鲜登录
我是django新手,正在为我的应用程序编写身份验证系统。现在我已经构建了基本的登录/注销功能 我想要的是,无论何时登录的用户想要访问他们的个人资料页面,都应该要求他们确认密码访问配置文件页面时需要Django新鲜登录,django,django-authentication,Django,Django Authentication,我是django新手,正在为我的应用程序编写身份验证系统。现在我已经构建了基本的登录/注销功能 我想要的是,无论何时登录的用户想要访问他们的个人资料页面,都应该要求他们确认密码 我在django文档上搜索过这个,但是我没有找到任何关于如何实现的资源。我知道flask有一个fresh\u login\u requireddecorator来做这件事,只是想知道django是否也可以做同样的事情。我认为django中没有任何功能。但是你可以在老师的帮助下自己写作。例如: def verify_fre
我在django文档上搜索过这个,但是我没有找到任何关于如何实现的资源。我知道flask有一个
fresh\u login\u required
decorator来做这件事,只是想知道django是否也可以做同样的事情。我认为django中没有任何功能。但是你可以在老师的帮助下自己写作。例如:
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
首先,我们需要编写一个装饰程序:
# 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\u password\u view\u url
的视图,您需要在request.session
中的键has\u login\u 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