장고 1.9부터 고유 한 암호 유효성 검사기를 정의 할 수 있습니다. 원하는 경우 기존의 것을 다시 정의 할 수도 있습니다.당신이 방법을 추가 할 때 : 지금
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'my_package.password_validators.MyPasswordValidator',
'OPTIONS': {
'min_length': 8,
}
},
...
]
, 암호는 사용자가 변경 될 때마다, 수업 MyPasswordValidator 다음과 같이
from django.contrib.auth.password_validation import MinimumLengthValidator
class MyPasswordValidator(MinimumLengthValidator):
def password_changed(self, password, user):
# put your password changed logic here
설정에서 새 클래스를 포함해야합니다 통보됩니다. 내 경험에 의하면, 문제는이 때문에 할 수있는 가장 좋은 방법입니다 :
- 이러한 이벤트를 캡처하는 신호를 사용하여, 당신은 또한 시스템 매개 변수를 해싱에 의한 변화로 기존의 암호를 다시 인코딩 이벤트를 캡처합니다, 대부분의 경우 이러한 이벤트를 포착하고 싶지 않으며 신호로 막을 수있는 확실한 방법이 없습니다.
- 모든 비밀번호 처리 양식의 save() 메소드에서 function-call을 간단하게 추가 할 수 있지만 내장 된 관리자 변경 비밀번호 양식을 사용하여 동일하게 수행하려는 경우 어려워집니다. 암호 변경은 양식 외부에서 프로그래밍 방식으로 수행됩니다.
password_changed()의 password 매개 변수는 실제로 사용자의 원시 비밀번호입니다. 이것을 처리 할 때는주의를 기울여야하며 암호화되지 않은/해시되지 않은 곳에서는 절대 저장하지 마십시오.
동기 신호가 동기? 메일이 비동기식 프로세스에서 발생하지 않는다면 똑같지 않을까요? – jdi
따라서 "스레드 끄기"비트. 신호로 전자 메일을 보내기위한 스레드를 만들면 실제로 비동기가됩니다. 신호가 처리를 반환하고 새로운 스레드가 행복하게 이메일 전송 프로세스를 진행합니다. –
아, 그 작은 비트가 그리워졌습니다. 신호에만 초점을 맞 춥니 다. – jdi