重新验证/确认我们的凭证

2024-10-01 13:24:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道如何在django中登录/注销用户以及进行身份验证,但有一件事对我的新项目至关重要。在

我想让用户登录(我已经登录),然后我想要求用户在某些页面上再次提供他们的凭据。在

我有一个方法,通过我创建的EmployeeAuthenticatedMixin,它检查POST数据中的凭证。主要问题是Mixin没有重定向,它只是提供一个页面。因此,用户可以点击刷新按钮重新提交表单,从而再次授予他们访问权限。在

有什么方法可以请求用户凭据并允许他们访问下一页吗?可能是内部Django的事?会议?信息?在


Tags: 数据项目django方法用户身份验证权限表单
2条回答

我写了一个信号,登录后会触发:

from django.contrib.auth.signals import user_logged_in

import datetime

def reauthentication(sender, user, request, **kwargs):
    request.session['last_login_time'] = str(datetime.datetime.now())
    request.session.save()

user_logged_in.connect(reauthentication)

然后我编写了中间件来捕捉那些在会话last_login_time超过3分钟时需要重新验证的视图。在

您可以使用request(logout)将他们注销,强迫他们重新登录 伪编码

def confirm_crednetials(request)
     logout(request)
     render 'form'

或者首先用表单提示用户如果他们没有cookie,您可以使用这个内置的django方法检查并设置cookieresp.set_cookie响应设置(foo,cookie)但是在您对用户进行身份验证之后。在

^{pr2}$

相关问题 更多 >