python - Fails to move further from Login page, [django-otp] -


समस्या:

मैं निम्नलिखित के साथ वापस लॉगइन पृष्ठ पर पुनः निर्देशित कर रहा हूं उपयोगकर्ता नाम और पासवर्ड देने के बाद त्रुटि संदेश

"कृपया एक सही ईमेल और पासवर्ड दर्ज करें। ध्यान दें कि दोनों फ़ील्ड केस-संवेदी हो सकते हैं।"

विस्तार:

मैंने दस्तावेज़ीकरण का पालन किया है I मुझे कॉन्फ़िगरेशन में कुछ याद करना चाहिए लेकिन ठीक से नहीं पता है बीले मेरे कोड से विस्तार हैं।

settings.py

  # मध्यवर्ती वर्गों में ... 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django_otp.middleware.OTPMiddleware', ... इंस्टॉल किए गए एप्लिकेशन में # ... 'django_otp', 'django_otp.plugins.otp_totp', 'django_otp.plugins.otp_hotp', 'Django_otp.plugins.otp_static', 'two_factor', 'otp_yubikey', ... LOGIN_URL = रिवर्स_लाज़ी ('दो_फैक्टर: लॉगिन') TWO_FACTOR_PATCH_ADMIN = True TWO_FACTOR_CALL_GATEWAY = 'two_factor.gateways.fake.fake' TWO_FACTOR_SMS_GATEWAY = 'two_factor.gateways। नकली। बनाओ 'TWO_FACTOR_QR_FACTORY =' qrcode.image.pil.PilImage 'LOGIN_REDIRECT_URL = रिवर्स_लाज़ी (' दो_फैक्टर: प्रोफ़ाइल ') AUTHENTICATION_BACKENDS = (' myapp.backends.EmailAuthBackend ',) AUTH_USER_MODEL =' users.User 'OTP_LOGIN_URL = LOGIN_URL   

लॉगर भी ठीक दिख रहा है

urls.py

  url (r '', शामिल करें (tf_urls + tf_tw ilio_urls, 'two_factor')),  

और views.py

  @otp_required () डीईपी होम (अनुरोध): # HTTP प्रतिक्रिया के साथ कुछ तर्क  

नोट :: मेरे ऐप में कस्टम उपयोगकर्ता मॉडल हैं इस प्रश्न के अतिरिक्त उन्हें admin.py में पंजीकृत किया गया है और मैं उस फ़ाइल को भी स्पष्ट करने के लिए चिपका रहा हूं।

admin.py

 django.contrib.auth.admin आयात UserAdmin से django.contrib आयात व्यवस्थापक से  वर्ग मेटा (UserChangeForm.Meta): मॉडल = उपयोगकर्ता वर्ग MyUserCreationForm (UserCreationForm): वर्ग मेटा (django.contrib.auth.forms Django आयात रूपों वर्ग MyUserChangeForm (UserChangeForm) से apps.users.models आयात उपयोगकर्ता से UserChangeForm, UserCreationForm आयात से UserCreationForm.Meta): मॉडल = उपयोगकर्ता डीईएफ़ clean_username (स्वयं): उपयोगकर्ता नाम = self.cleaned_data [ 'उपयोगकर्ता नाम'] का प्रयास करें: User.objects.get (उपयोगकर्ता नाम = उपयोगकर्ता नाम) User.DoesNotExist को छोड़कर: वापसी उपयोगकर्ता नाम उठाना forms.ValidationError (आत्म। error_messages [ 'duplicate_username']) वर्ग MyUserAdmin (UserAdmin): फार्म = MyUserChangeForm add_form = MyUserCreationForm # fieldsets = UserAdmin.fieldsets + (# (कोई नहीं, { 'क्षेत्रों': ( 'extra_field1', 'extra_field2',)}), # ) Admin.site.register (उपयोगकर्ता, MyUs ErAdmin)  

कृपया बताएं कि मैं गलत कहां जा रहा हूं। और मुझे बताएं कि क्या मैं बहुत स्पष्ट नहीं हूं धन्यवाद!

ठीक है, मेरा मुद्दा यह है: क्योंकि आप उपयोगकर्ता मॉडल से इनहेरिटिंग का उपयोग करते हैं, आपको AUTH_USER_MODEL एक प्राधिकृत मार्ग के रूप में इसका मतलब है, आपके पास पहले से ही दो नियम हैं शायद आपको दो तालिकाओं की जांच करनी चाहिए: otp_device और auth_users मेरा मतलब है कि जब आप अपना लॉग / पास फॉर्म डालते हैं, तो यह auth_users तालिका से जांच कर रहा है लेकिन डिवाइस तालिका में आपके पास एक अनुरोध उपयोगकर्ता नहीं है। इसलिए, ओ.टी.पी. एथ सिस्टम कोई भी रिकॉर्ड के साथ मेल नहीं कर सकता है और लॉगिन पृष्ठ पर आपको पुनर्निर्देशित कर सकता है।

अगर मुझे ऐसी ही स्थिति थी, तो मैंने दो समाधानों का प्रयास करने का फैसला किया:

  1. उपयोगकर्ता और उपकरण तालिका को सिंक करने के लिए एक संकेत बनाएं;
  2. उपयोगकर्ता अनुकूलन के पुराने संस्करण का उपयोग करें (उपयोगकर्ता मॉडल के साथ वनटॉनीफिल्ड)।

मुझे लगता है कि यह लेख के लिए बहुत जटिल तरीका है: तीन ऐप (दो_फैक्टर, ओटीपी और डिफ़ॉल्ट ऑथ) समान एथ तकनीक का उपयोग कर रहे हैं।


Comments

Popular posts from this blog

java - Can't add JTree to JPanel of a JInternalFrame -

javascript - data.match(var) not working it seems -

javascript - How can I pause a jQuery .each() loop, while waiting for user input? -