是否有任何django应用程序在30天等特定间隔后强行过期用户密码?我正在使用djangp的auth并希望扩展它或使用社区应用程序。
到目前为止我尝试过:
我对此感到困惑:
请注意,我不想使用中间件,因为它会成为资源限制。
答案 0 :(得分:11)
你似乎走在正确的轨道上。设置更新上次密码的日期,检查timedelta是否大于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.
答案 1 :(得分:0)
嗯,有django-passwords-policies,http://tarak.github.io/django-password-policies/topics/force.password.change.html