Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Django में GitHub OAuth इनेबल करना


कई डेवलपर वेबसाइट्स पर हमें GitHub सोशल ऑथेंटिकेशन देखने को मिलता है जो बहुत सुविधाजनक है। इस लेख में, हम देखेंगे कि अपनी Django वेबसाइट में Github Auth कैसे जोड़ें।

https://github.com/settings/developers/ पर जाएं और एक OAuth एप्लिकेशन बनाएं और ये दो URLs जोड़ें:

  • https://127.0.0.1:8000/

  • https://127.0.0.1:8000/accounts/github/login/callback

फिर, आपको एक क्लाइंट ID और एक सीक्रेट की मिलेगी। अब, कोडिंग भाग पर चलते हैं।

उदाहरण

django-allauth लाइब्रेरी इंस्टॉल करें:

pip install django-allauth

settings.py में निम्नलिखित कोड लाइनें जोड़ें:

INSTALLED_APPS = [
    ##################
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.github',
    'githubAuthentication'
]
SITE_ID = 1
AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend'
]
LOGIN_REDIRECT_URL = "https://github.com"

INSTALLED_APPS में, हमने वे इम्पोर्ट लाइब्रेरी जोड़ीं जिनकी हमें आवश्यकता है और फिर हमने GitHub डिफ़ॉल्ट प्रमाणीकरण बैकएंड जोड़ा। हमने एक रीडायरेक्ट URL भी इनेबल किया जो बताएगा कि लॉगिन पर कहां रीडायरेक्ट करना है।

urls.py प्रोजेक्ट रूट में:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    # यह मॉड्यूल पथ है इसे कॉपी करें जैसा है
    path('accounts/', include('allauth.urls')),
    # यह मेरा ऐप पथ है
    path('', include("githubAuthentication.urls"))
]

यहां, हमने वह डिफ़ॉल्ट पथ जोड़ा जिसे जोड़ना आवश्यक है; यह GitHub लॉगिन इनेबल करने के लिए allauth लाइब्रेरी पथ है। दूसरा वह ऐप पथ है जिसे हमने बनाया।

अब https://localhost:8000/admin पर जाएं और सोशल एप्लिकेशन पर जाएं।

और, एक एप्लिकेशन जोड़ें:

Django में GitHub OAuth इनेबल करना

पहले कॉपी किए गए क्लाइंट ID और सीक्रेट की पेस्ट करें और नाम एप्लिकेशन नाम होना चाहिए, प्रोवाइडर github चुनें।

साइट्स सेक्शन में, example.com पर क्लिक करें और फिर एरो की पर क्लिक करें और सेव दबाएं। यह github को आपके Django प्रोजेक्ट पर प्रमाणीकरण बैकएंड के रूप में रजिस्टर करेगा।

अब, templates फोल्डर में home.html बनाएं और निम्नलिखित लाइनें जोड़ें:

<!DOCTYPE html>
<html>
    <head>
        <title>tut</title>
        </head>
    <body>
        {% load socialaccount %}
        {% providers_media_js %}
        <a href="{% provider_login_url 'github' method='js_sdk' %}?next=https://github.com">login with github</a>
    </body>
</html>

यहां, हमने बस JS रेंडर किया और फ्रंटएंड पर allauth लाइब्रेरी लोड की। <a> में हमने github लॉगिन पेज प्रदान किया जिस पर हमने अपना डिफ़ॉल्ट github लॉगिन पेज सेट किया।

view.py में:

from django.shortcuts import render

def home(request):
    return render(request, "home.html")

हमने यहां अपना फ्रंटएंड रेंडर किया।

urls.py (ऐप urls) में:

from django.urls import path, include
from . import views

urlpatterns = [
    path('', views.home, name="Home"),
]

हमने यहां urls सेट किए और अपने व्यूज रेंडर किए।

सब कुछ हो गया, अब आप आउटपुट जांचने के लिए आगे बढ़ सकते हैं।

आउटपुट

Django में GitHub OAuth इनेबल करना


  1. Django – एडमिन आधारित फाइल मैनेजमेंट Django – एडमिन आधारित फाइल मैनेजमेंट

    हम आमतौर पर फ्रंटएंड से फाइल या इमेज से संबंधित बदलाव करते हैं। इस लेख में, हम देखेंगे कि एडमिन पैनल पर फाइल मैनेजमेंट कैसे बनाया जाए जहां हम विभिन्न प्रकार की फाइलों को मैनेज कर सकते हैं जिन्हें हम सर्वर से क्लाइंट को रेंडर करने जा रहे हैं। उदाहरण django-filer मॉड्यूल इंस्टॉल करें: pip install dja

  1. Django में मॉडल इंस्टेंस में ट्रांसलेशन जोड़ना Django में मॉडल इंस्टेंस में ट्रांसलेशन जोड़ना

    इस लेख में, हम सीखेंगे कि किसी भी इंस्टेंस के लिए ट्रांसलेशन कैसे बनाया जाए। कभी-कभी, आपको ID, नाम, कोट्स, लाइन्स आदि जैसे डेटा को सेव करने की आवश्यकता हो सकती है। आपको उस डेटा को विभिन्न भाषाओं में रेंडर करना पड़ सकता है; इसके लिए आपको बहुत सारे डेटाबेस कार्य करने पड़ते हैं, लेकिन आज मैं आपको दिखा

  1. Django में मनी फील्ड कैसे जोड़ें? Django में मनी फील्ड कैसे जोड़ें?

    कभी-कभी, हमें वेबसाइट पर मनी-संबंधी डेटा जोड़ना पड़ता है, जैसे सैलरी, फीस या आय। Django एक इंटीजर फील्ड प्रदान करता है लेकिन कई बार यह हमारी इच्छा के अनुसार काम नहीं करता। इसलिए, मनी फील्ड को संभालने के लिए, हम एक थर्ड-पार्टी लाइब्रेरी का उपयोग कर सकते हैं जो हमारे मॉडल में मनी फील्ड जोड़ देगी। प्