OAuth का उपयोग करके Django में सोशल मीडिया खातों के साथ एक सुरक्षित लॉगिन सिस्टम बनाने का तरीका जानें।

सामाजिक प्रमाणीकरण पासवर्ड का उपयोग करने के बजाय सामाजिक खाते के माध्यम से किसी व्यक्ति की पहचान की पुष्टि करने का एक तरीका है। वेब विकास में, बिना पासवर्ड के उपयोगकर्ताओं को प्रमाणित करना हमेशा सहायक होता है। इस तरह, वे Google, Twitter, या GitHub जैसे सामाजिक ऐप्स के माध्यम से लॉग इन कर सकते हैं।

सामाजिक प्रमाणीकरण सक्षम करना सामान्य पासवर्ड-संबंधी कमजोरियों के जोखिम को कम करके आपके एप्लिकेशन की सुरक्षा बढ़ाने का एक शानदार तरीका है। इससे आपके ऐप का यूजर एक्सपीरियंस भी बेहतर होगा क्योंकि यूजर्स को ज्यादा पासवर्ड याद रखने की जरूरत नहीं पड़ेगी।

Django में उपयोगकर्ता प्रमाणीकरण

Django डेवलपर्स को काम करने के लिए एक डिफ़ॉल्ट प्रमाणीकरण प्रणाली प्रदान करता है। हालाँकि, यह प्रमाणीकरण प्रणाली पारंपरिक प्रमाणीकरण का उपयोग करती है, जिसमें उपयोगकर्ता का उपयोगकर्ता नाम, ईमेल, पासवर्ड, पहला नाम और अंतिम नाम जैसे डेटा को मैन्युअल रूप से एकत्र करना शामिल है।

डिज़ाइन के अनुसार, Django की प्रमाणीकरण प्रणाली बहुत सामान्य है और आज अधिकांश वेब प्रमाणीकरण प्रणालियों में उपयोग की जाने वाली कई सुविधाएँ प्रदान नहीं करती है। इसे पूरा करने के लिए, आप जैसे तृतीय-पक्ष पैकेज का उपयोग करना चाहेंगे

instagram viewer
django-allauth पैकेट।

Django में OAuth कैसे सक्षम करें

Django एप्लिकेशन में OAuth का उपयोग करके अपने उपयोगकर्ताओं को प्रमाणित करने के लिए, आप नामक Django पैकेज का उपयोग कर सकते हैं django-allauth.

Django Allauth एक पैकेज है जो आपके Django प्रोजेक्ट के लिए प्रमाणीकरण, पंजीकरण, खाता प्रबंधन और तृतीय-पक्ष (सामाजिक) खाता प्रमाणीकरण को संभालता है। निम्नलिखित चरण आपको अपने Django प्रोजेक्ट के लिए Django Allauth स्थापित करने में मार्गदर्शन करेंगे।

चरण 1: Django-Allauth को स्थापित और सेट अप करें

यदि आपने अभी तक ऐसा नहीं किया है, एक आभासी वातावरण बनाएँ और इंस्टॉल करें django-allauth पिप के माध्यम से:

pip install django-allauth

ध्यान दें कि इसे काम करने के लिए आपको Python 3.5 या उच्चतर और Django 2.0 या उच्चतर का उपयोग करना होगा।

चरण 2: Django-Allauth के लिए Django में आवश्यक ऐप्स जोड़ें

इंस्टाल करने के बाद django-allauth, अपनी खोलो सेटिंग्स.py फ़ाइल करें और निम्नलिखित ऐप्स को अपने में जोड़ें इंस्टॉल_ऐप्स सूची:

INSTALLED_APPS = [


Add your other apps here

# Djang Allauth configuration apps
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
]

उपरोक्त कुछ ऐप्स के बारे में ध्यान देने योग्य कुछ बातें यहां दी गई हैं:

  • allauth.सामाजिक खाता ऐप उपयोगकर्ताओं को एक्स (पूर्व में ट्विटर), इंस्टाग्राम, गिटहब और अन्य जैसे सामाजिक ऐप के माध्यम से साइन इन करने देगा।
  • django.contrib.sites ऐप एक अंतर्निहित Django फ्रेमवर्क है जिसके लिए यह आवश्यक है django-allauth काम करने के लिए। ऐप एक ही Django प्रोजेक्ट के भीतर कई साइटों को प्रबंधित और अलग करने की क्षमता प्रदान करता है। आप इसका हवाला देकर समझ सकते हैं कि यह कैसे काम करता है Django दस्तावेज़ीकरण.

चरण 3: अपने प्रोजेक्ट के लिए प्रमाणीकरण बैकएंड को परिभाषित करें

अगला चरण यह परिभाषित करना है कि आप अपने उपयोगकर्ताओं को कैसे प्रमाणित करना चाहते हैं। आप इसे कॉन्फ़िगर करके कर सकते हैं AUTHENTICATION_BACKENDS आपके में सेटिंग्स.py फ़ाइल। के लिए django-allauth, आपको इन्हें जोड़ना चाहिए:

AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]

उपरोक्त कोड स्निपेट दो प्रमाणीकरण बैकएंड को परिभाषित करता है:

  1. पहला Django द्वारा उपयोग किया जाने वाला डिफ़ॉल्ट है। यह व्यवस्थापक उपयोगकर्ता को django-allauth के कॉन्फ़िगरेशन के बावजूद व्यवस्थापक पैनल में लॉग इन करने की अनुमति देगा।
  2. दूसरा प्रमाणीकरण बैकएंड को परिभाषित करता है django-allauth.

चरण 4: अपनी साइट आईडी जोड़ें

अपनी सेटिंग फ़ाइल में, आपको अपनी साइट के लिए आईडी जोड़नी चाहिए। यहाँ एक उदाहरण है:

SITE_ID = 1

डिफ़ॉल्ट रूप से, एक साइट होती है जिसे कहा जाता है example.com व्यवस्थापक पैनल में. आप इस साइट को संशोधित करने या अपने लिए एक जोड़ने का निर्णय ले सकते हैं। किसी भी स्थिति में, आपको व्यवस्थापक पैनल में लॉग इन करना चाहिए और नेविगेट करना चाहिए साइटों अनुप्रयोग।

Django साइट के लिए साइट आईडी प्राप्त करने के लिए, अपना खोलें कमांड लाइन इंटरफ़ेस (सीएलआई) और यह आदेश चलाएँ:

python manage.py shell

इसके बाद, इस स्क्रिप्ट को पायथन शेल में लिखें:

from django.contrib.sites.models import Site

current_site = Site.objects.get_current()
site_id = current_site.id
site_name = current_site.name
print("Site ID:", site_id)
print("Site Name:", site_name)

उपरोक्त कोड साइट के नाम के साथ-साथ उसकी आईडी भी प्रिंट करेगा।

चरण 5: अपने यूआरएल कॉन्फ़िगर करें

आपके प्रोजेक्ट में urls.py फ़ाइल, के लिए URL पैटर्न कॉन्फ़िगर करें django-allauth. इसे इस तरह दिखना चाहिए:

from django.urls import path, include

urlpatterns = [
# Djang-allauth url pattern
path('accounts/', include('allauth.urls')),
]

इस सेटअप के साथ, आप अपना डेवलपमेंट सर्वर शुरू कर सकते हैं और नेविगेट कर सकते हैं http://127.0.0.1:8000/accounts/. यदि आपके पास है डीबग करने के लिए सेट सत्य, आपको इसके लिए उपलब्ध यूआरएल पैटर्न की एक सूची देखनी चाहिए django-allauth.

यदि आपने उपरोक्त कार्य किया है, तो आपका प्रोजेक्ट सामाजिक प्रमाणीकरण के लिए तैयार होना चाहिए।

अपने Django ऐप में Google लॉगिन/साइनअप कैसे लागू करें

स्थापित करने के बाद django-allauth, आपको अपने उपयोगकर्ताओं को Google जैसे उनके सामाजिक खातों से स्वयं को प्रमाणित करने देने के लिए तैयार रहना चाहिए।

चरण 1: अपने इंस्टॉल किए गए ऐप्स में अपने सामाजिक खाता प्रदाता को पंजीकृत करें

आपके में सेटिंग्स.py फ़ाइल में, आपको सामाजिक खाता प्रदाता को जोड़ना चाहिए इंस्टॉल_ऐप्स. इस मामले में, यह Google है। अन्य विकल्प इंस्टाग्राम, एक्स आदि हैं।

INSTALLED_APPS = [


Add your other apps here

# Social account provider (google)
'allauth.socialaccount.providers.google',
]

चरण 2: Google पर अपनी क्लाइंट आईडी और गुप्त कुंजी बनाएं

इस चरण को पूरा करने के लिए, आपके पास एक Google खाता होना चाहिए। यदि आपने ऐसा किया है, तो इन अगले चरणों का पालन करें:

  1. पर जाएँ Google क्लाउड कंसोल एक नया प्रोजेक्ट बनाने के लिए. सबसे पहले, नीचे दी गई छवि में दिखाए गए ड्रॉप-डाउन पर क्लिक करें:
  2. अगला, पर क्लिक करें नया काम:
  3. अपने प्रोजेक्ट के लिए एक नाम दर्ज करें, फिर क्लिक करें बनाएं बटन:
  4. अपने प्रोजेक्ट के चयन के साथ, पर क्लिक करें हैमबर्गर मेनू. चुनना एपीआई और सेवाएँ, तब साख:
  5. इसके बाद जो विकल्प लिखा है उस पर क्लिक करें सहमति स्क्रीन कॉन्फ़िगर करें और चुनें बाहरी:
  6. अगले पृष्ठ पर, अपने ऐप के लिए एक नाम दर्ज करें और जहां आवश्यक हो वहां एक ईमेल शामिल करें। आप कुछ अनुकूलन के लिए कॉन्फ़िगरेशन का भी पता लगा सकते हैं। एक बार हो जाने पर, पर क्लिक करें सहेजें और जारी रखें.
  7. बाईं ओर के मेनू पर, चुनें साख. उसके बाद पर क्लिक करें साख बनाएँ और चुनें OAuth क्लाइंट आईडी.
  8. अगला, का चयन करें आवेदन का प्रकार और उसके लिए एक नाम दर्ज करें। इस ट्यूटोरियल के लिए, आवेदन का प्रकार होगा वेब अनुप्रयोग.
  9. इसके बाद, के लिए यूआरआई जोड़ें अधिकृत जावास्क्रिप्ट उत्पत्ति और अधिकृत रीडायरेक्ट यूआरआई. आपकी वेबसाइट का होस्ट जावास्क्रिप्ट मूल का होना चाहिए, और सिस्टम प्रमाणीकरण के बाद उपयोगकर्ताओं को रीडायरेक्ट यूआरआई पर रीडायरेक्ट करेगा। रीडायरेक्ट यूआरआई में आम तौर पर शामिल होना चाहिए आपका-होस्ट-नाम/खाते/google/लॉगिन/कॉलबैक/. विकास मोड के लिए, यह होगा: http://127.0.0.1:8000/accounts/google/login/callback/. पर क्लिक करें बनाएं जब एक बार हो गया.
  10. क्रेडेंशियल बनाने के बाद, आप अपनी कॉपी कर सकते हैं ग्राहक ID या ग्राहक रहस्य किसी सुरक्षित स्थान पर ले जाएं या उन्हें JSON फ़ाइलों के रूप में डाउनलोड करें।

चरण 3: अपने Django ऐप में अपनी क्लाइंट आईडी और गुप्त कुंजी जोड़ें

आवश्यक क्रेडेंशियल बनाने के बाद, नेविगेट करें http://127.0.0.1:8000/admin, चुनना सामाजिक अनुप्रयोग, और एक नया सामाजिक एप्लिकेशन बनाएं। नया सामाजिक ऐप बनाने के लिए इन चरणों का पालन करें:

  1. एक प्रदाता जोड़ें. प्रदाता उस ऐप को संदर्भित करता है जिसके साथ आप अपने उपयोगकर्ता को प्रमाणित कर रहे हैं। इस मामले में, यह Google है, दूसरे मामले में, यह स्नैपचैट हो सकता है।
  2. अपने नए सामाजिक ऐप के लिए एक नाम दर्ज करें. सुनिश्चित करें कि यह एक उचित नाम है
  3. में चिपकाएँ ग्राहक ID आपने Google से कॉपी किया है.
  4. के लिए गुप्त कुंजी, पेस्ट करें ग्राहक रहस्य आपने Google से कॉपी किया है.
  5. चाबी फ़ील्ड Google के साथ प्रमाणीकरण पर लागू नहीं होती है, इसलिए इसे अनदेखा करें।
  6. अंत में, सामाजिक एप्लिकेशन को संबद्ध करने के लिए एक साइट का चयन करें।

चरण 4: अपने Google प्रमाणीकरण का परीक्षण करें

अपने व्यवस्थापक पैनल से लॉग आउट करें और नेविगेट करें http://127.0.0.1:8000/accounts/login/. आपको Google के माध्यम से लॉग इन करने का विकल्प दिखाई देगा।

सहमति स्क्रीन पर रीडायरेक्ट करने के लिए उस पर क्लिक करें। इसके बाद, लॉग इन करने के लिए एक खाता चुनें।

एक बार जब आप एक खाता चुन लेते हैं, तो आपको पुनः निर्देशित किया जाएगा http://127.0.0.1:8000/accounts/profile/. इसका मतलब है कि आपका ऐप बिल्कुल ठीक काम कर रहा है। आप डिफ़ॉल्ट टेम्प्लेट को बदलने के लिए कस्टम टेम्प्लेट बना सकते हैं।

Django में सामाजिक प्रमाणीकरण के साथ उपयोगकर्ता पंजीकरण बढ़ाना

सामाजिक प्रमाणीकरण सक्षम करना आपके उपयोगकर्ताओं को आपके एप्लिकेशन के लिए पंजीकरण करने का एक शानदार अनुभव प्राप्त करने में मदद करने का एक शानदार तरीका है। Django में प्रमाणीकरण सक्षम करने के अन्य तरीके हैं, और आपको यह तय करने के लिए उनका पता लगाना चाहिए कि आपके उपयोग के मामले में सबसे अच्छा क्या है।