2016-03-03 1 views
0

Есть ли способ django-allauth позаботиться о проверке прочности пароля при регистрации?Django-allauth и сила пароля при регистрации

я увидел, что можно установить размер пароля настраиваемой ACCOUNT_PASSWORD_MIN_LENGTH в settings.py, но я также хотел, чтобы проверить другие обычные вещи, как:

  • Существует по крайней мере одна заглавная буква
  • Там по меньшей мере, одна цифра
  • Существует по крайней мере один специальный символ

Существует способ сделать это с Джанго-allauth?

Заранее спасибо.

ответ

3

Вы можете сделать это, перекрывая адаптер по умолчанию (через ACCOUNT_ADAPTER), как это:

from allauth.account.adapter import DefaultAccountAdapter 

class MyAccountAdapter(DefaultAccountAdapter): 

    def clean_password(self, password): 
     # Insert your rules here 

Обратите внимание, что Джанго недавно добавлена ​​поддержка пользовательских паролей валидаторов. Этот механизм будет также поддерживаться в 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")