2016-03-03 50 views
0

有沒有辦法讓django-allauth在註冊時負責密碼強度檢查?Django-allauth和註冊時的密碼強度

我看到它是可以設置密碼配置在settings.pyACCOUNT_PASSWORD_MIN_LENGTH的大小,但我也想檢查其他平常的事情,如:

  • 至少有一個大寫字母
  • 有至少一個數字
  • 至少有一個特殊字符

有一個辦法做到這一點與Django的allauth?

在此先感謝。

回答

3

您可以通過覆蓋(通過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

0

謝謝!這是我的解決方案,希望這有幫助!

# 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")