有沒有辦法讓django-allauth在註冊時負責密碼強度檢查?Django-allauth和註冊時的密碼強度
我看到它是可以設置密碼配置在settings.py
ACCOUNT_PASSWORD_MIN_LENGTH
的大小,但我也想檢查其他平常的事情,如:
- 至少有一個大寫字母
- 有至少一個數字
- 至少有一個特殊字符
有一個辦法做到這一點與Django的allauth?
在此先感謝。
有沒有辦法讓django-allauth在註冊時負責密碼強度檢查?Django-allauth和註冊時的密碼強度
我看到它是可以設置密碼配置在settings.py
ACCOUNT_PASSWORD_MIN_LENGTH
的大小,但我也想檢查其他平常的事情,如:
有一個辦法做到這一點與Django的allauth?
在此先感謝。
您可以通過覆蓋(通過ACCOUNT_ADAPTER
)默認的適配器做到這一點,是這樣的:
from allauth.account.adapter import DefaultAccountAdapter
class MyAccountAdapter(DefaultAccountAdapter):
def clean_password(self, password):
# Insert your rules here
注意,Django的最近添加了對自定義密碼驗證的支持。這個機制也將在allauth中得到支持,請關注這個問題https://github.com/pennersr/django-allauth/issues/1233。
謝謝!這是我的解決方案,希望這有幫助!
# project/settings.py:
ACCOUNT_ADAPTER = 'user_profile.adapters.MyAccountAdapter'
# project/user_profile/adapter.py:
from allauth.account.adapter import DefaultAccountAdapter
class MyAccountAdapter(DefaultAccountAdapter):
def clean_password(self, password):
if re.match(r'^(?=.*?\d)(?=.*?[A-Z])(?=.*?[a-z])[A-Za-z\d]{8,}$', password):
return password
else:
raise ValidationError("Error message")