Django 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
इस प्रकार अपनी सेटिंग्स में अपने नए वर्ग शामिल करना न भूलें अधिसूचित किया जाएगा। मेरे अनुभव में, यह इस वजह से ऐसा करने के लिए सबसे अच्छा तरीका है:
- संकेतों का उपयोग करते समय इन घटनाओं पर कब्जा करने की, आप भी घटनाओं जहां प्रणाली एक मौजूदा पासवर्ड एक परिवर्तन के कारण मापदंडों hashing में फिर से इनकोडिंग पर कब्जा होगा, ज्यादातर मामलों में, आप इन घटनाओं को कैप्चर नहीं करना चाहते हैं और सिग्नल के साथ इसे रोकने के लिए कोई स्पष्ट तरीका नहीं है।
- आप अपने सभी पासवर्ड-हैंडलिंग फॉर्मों की सेव() विधि में फ़ंक्शन-कॉल जोड़ सकते हैं, लेकिन यह तब मुश्किल हो जाता है जब आप अंतर्निहित व्यवस्थापक परिवर्तन पासवर्ड फ़ॉर्म के साथ ऐसा करना चाहते हैं और आपकी सहायता नहीं करेंगे पासवर्ड परिवर्तन प्रोग्राम के रूप में एक फॉर्म के बाहर किए जाते हैं।
मैं आपको सावधान रहूंगा कि पासवर्ड_changed() में पासवर्ड पैरामीटर वास्तव में उपयोगकर्ता का कच्चा पासवर्ड है। इसे संभालने के दौरान सावधानी बरतें और पूरी तरह से इसे कहीं भी अनएन्क्रिप्टेड/अनछुए स्टोर न करें।
हालांकि अनुक्रम सिंक्रोनस हालांकि? जब तक एक एसिंच प्रक्रिया में मेल नहीं होता है, तो क्या यह वही बात नहीं होगी? – jdi
इसलिए "थ्रेड से आग" बिट। यदि आप संकेत में ईमेल भेजने के लिए धागा बनाते हैं तो यह असीमित हो जाता है। सिग्नल प्रोसेसिंग लौटाता है और नया थ्रेड खुशी से इसकी ईमेल भेजने की प्रक्रिया के बारे में जाता है। –
आह ने थोड़ा सा याद किया। सिग्नल पर ध्यान केंद्रित – jdi