是否有任何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