是否有任何django应用程序强制在30天之后的某个时间间隔后过期用户的密码?我正在使用djangp的身份验证,并希望扩展它或使用社区应用程序。Django强制密码过期
我迄今为止尝试:
- 添加到用户配置文件字段用于存储上次密码更新的日期。
- 扩展登录方法以检查此日期并将用户重定向到密码更改页面。
我什么困惑:
- 耕种更改密码阻止用户访问该网站。
- 用户不应该能够登录或只需键入网址直接访问该页面。
请注意,我不想使用中间件,因为它会成为资源限制。
是否有任何django应用程序强制在30天之后的某个时间间隔后过期用户的密码?我正在使用djangp的身份验证,并希望扩展它或使用社区应用程序。Django强制密码过期
我迄今为止尝试:
我什么困惑:
请注意,我不想使用中间件,因为它会成为资源限制。
你似乎走在正确的轨道上。设置上次密码更新的日期,检查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.
这是有道理的,马特。我会试试这个。谢谢 – 2013-03-24 01:08:59