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