खोज…


पैरामीटर

स्थापना कर देता है
कुछ विन्यास हैंडी बेसिक सेटिंग्स जो कि Django-Allauth के साथ जाती हैं (जो कि मैं ज्यादातर समय उपयोग करता हूं)। अधिक कॉन्फ़िगरेशन विकल्पों के लिए, कॉन्फ़िगरेशन देखें
ACCOUNT_AUTHENTICATION_METHOD (= "उपयोगकर्ता नाम" या "ईमेल" या "username_email") उपयोग करने के लिए लॉगिन विधि को निर्दिष्ट करता है - चाहे उपयोगकर्ता अपने उपयोगकर्ता नाम, ई-मेल पते, या दोनों में से किसी एक को दर्ज करके प्रवेश करता है। इसे "ईमेल" पर सेट करने के लिए ACCOUNT_EMAIL_REQUIRED = True की आवश्यकता होती है
ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS (= 3) ईमेल पुष्टिकरण मेल (# दिनों की) की समाप्ति तिथि निर्धारित करता है।
ACCOUNT_EMAIL_REQUIRED (= गलत) साइन अप करते समय उपयोगकर्ता को एक ई-मेल पता सौंपना आवश्यक है। यह ACCOUNT_AUTHENTICATION_METHOD सेटिंग के साथ मेल ACCOUNT_AUTHENTICATION_METHOD है
ACCOUNT_EMAIL_VERIFICATION (= "वैकल्पिक") साइनअप के दौरान ई-मेल सत्यापन विधि निर्धारित करता है - "अनिवार्य", "वैकल्पिक", या "कोई नहीं" में से एक चुनें। जब "अनिवार्य" पर सेट किया जाता है, तो उपयोगकर्ता को ईमेल पता सत्यापित होने तक लॉग इन करने से रोक दिया जाता है। एक असत्यापित ई-मेल पते के साथ लॉगिन की अनुमति देने के लिए "वैकल्पिक" या "कोई नहीं" चुनें। "वैकल्पिक" के मामले में, ई-मेल सत्यापन मेल अभी भी भेजा जाता है, जबकि "कोई नहीं" के मामले में कोई ई-मेल सत्यापन मेल नहीं भेजा जाता है।
ACCOUNT_LOGIN_ATTEMPTS_LIMIT (= 5) विफल लॉगिन प्रयासों की संख्या। जब यह संख्या पार हो जाती है, तो उपयोगकर्ता को निर्दिष्ट ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT सेकंड के लिए लॉग इन करने से प्रतिबंधित किया जाता है। हालांकि यह अलाउथ लॉगिन दृश्य की सुरक्षा करता है, यह Django के व्यवस्थापक लॉगिन को क्रूर होने से बचाता नहीं है।
ACCOUNT_LOGOUT_ON_PASSWORD_CHANGE (= गलत) यह निर्धारित करता है कि उपयोगकर्ता अपना पासवर्ड बदलने या सेट करने के बाद स्वचालित रूप से लॉग आउट है या नहीं।
SOCIALACCOUNT_PROVIDERS (= तानाशाह) प्रदाता विशिष्ट सेटिंग्स वाले शब्दकोश।

आसान तरीका: अजगर-सामाजिक-विशेषाधिकार

पायथन-सोशल-ऑर्कुट एक फ्रेमवर्क है जो सामाजिक प्रमाणीकरण और प्राधिकरण तंत्र को सरल बनाता है। इसमें कई सामाजिक बैकएंड (फेसबुक, ट्विटर, जीथब, लिंक्डइन, आदि) शामिल हैं।

इंस्टॉल

पहले हमें अजगर-सामाजिक-व्यावसायिक पैकेज स्थापित करना होगा

pip install python-social-auth

या github से कोड डाउनलोड करें। अब इसे अपनी requirements.txt जोड़ने के लिए एक अच्छा समय है।

अनुरूपण सेटिंग्स

सेटिंग्स में जोड़ें:

INSTALLED_APPS = (
    ...
    'social.apps.django_app.default',
    ...
)

कॉन्फिडिंग बैकिंग

AUTHENTICATION_BACKENDS में वे बैकएंड शामिल हैं जिनका हम उपयोग करेंगे, और हमें केवल वही डालना है जो हमें चाहिए।

AUTHENTICATION_BACKENDS = (
    'social.backends.open_id.OpenIdAuth',
    'social.backends.google.GoogleOpenId',
    'social.backends.google.GoogleOAuth2',
    'social.backends.google.GoogleOAuth',
    'social.backends.twitter.TwitterOAuth',
    'social.backends.yahoo.YahooOpenId',
    ...
    'django.contrib.auth.backends.ModelBackend',
)

आपकी प्रोजेक्ट settings.py अभी तक AUTHENTICATION_BACKENDS फ़ील्ड नहीं है। अगर ऐसा है तो क्षेत्र को जोड़ें। सुनिश्चित करें कि 'django.contrib.auth.backends.ModelBackend', याद नहीं है 'django.contrib.auth.backends.ModelBackend', क्योंकि यह उपयोगकर्ता नाम / पासवर्ड द्वारा लॉगिन को संभालता है।

यदि हम उदाहरण के लिए फेसबुक और लिंक्डइन बैकेंड का उपयोग करते हैं तो हमें एपीआई कुंजियों को जोड़ना होगा

SOCIAL_AUTH_FACEBOOK_KEY = 'YOURFACEBOOKKEY'
SOCIAL_AUTH_FACEBOOK_SECRET = 'YOURFACEBOOKSECRET'

तथा

SOCIAL_AUTH_LINKEDIN_KEY = 'YOURLINKEDINKEY'
SOCIAL_AUTH_LINKEDIN_SECRET = 'YOURLINKEDINSECRET'

नोट : आप फेसबुक डेवलपर्स और लिंक्डइन डेवलपर्स में nedded कुंजियों को प्राप्त कर सकते हैं और यहां आप एपीआई कुंजी और प्रमुख रहस्य को स्पष्ट करने के लिए पूरी सूची और उसके संबंधित तरीके देख सकते हैं।

गुप्त कुंजी पर ध्यान दें: गुप्त कुंजी को गुप्त रखा जाना चाहिए। यहां एक स्टैक ओवरफ्लो स्पष्टीकरण है जो सहायक है। यह ट्यूटोरियल एन्वीरोमेंटल वेरिएबल्स के बारे में जानने के लिए मददगार है।

TEMPLATE_CONTEXT_PROCESSORS पुनर्निर्देशन, बैकएंड और अन्य चीजों में मदद करेगा, लेकिन शुरुआत में हमें केवल इनकी आवश्यकता है:

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'social.apps.django_app.context_processors.backends',
    'social.apps.django_app.context_processors.login_redirect',
    ...
)

Django में 1.8 TEMPLATE_CONTEXT_PREPROCESSORS स्थापना की गई जैसा कि ऊपर दिखाया गया था। यदि आपके लिए यह मामला है, तो आप इसे TEMPLATES अंदर जोड़ देंगे। तुम्हारा कुछ इस तरह दिखना चाहिए:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, "templates")],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'social.apps.django_app.context_processors.backends',
                'social.apps.django_app.context_processors.login_redirect',
            ],
        },
    },
] 

कस्टमर का उपयोग करना

यदि आप एक कस्टम उपयोगकर्ता मॉडल का उपयोग कर रहे हैं और इसके साथ जुड़ना चाहते हैं, तो बस निम्न पंक्ति (अभी भी सेटिंग्स में जोड़ें )

SOCIAL_AUTH_USER_MODEL = 'somepackage.models.CustomUser'    

CustomUser एक ऐसा मॉडल है जो डिफ़ॉल्ट उपयोगकर्ता से विरासत या सार है।

CONFIGURING urls.py

# if you haven't imported inlcude make sure you do so at the top of your file
from django.conf.urls import url, include

urlpatterns = patterns('',
    ...
    url('', include('social.apps.django_app.urls', namespace='social'))
    ...
)

अगला आवश्यक मॉडल बनाने के लिए डेटाबेस को सिंक करने की आवश्यकता है:

./manage.py migrate

अंत में हम खेल सकते हैं!

कुछ टेम्पलेट में आपको कुछ इस तरह से जोड़ना होगा:

    <a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}">Login with Facebook</a>
    <a href="{% url 'social:begin' 'linkedin' %}?next={{ request.path }}">Login with Linkedin</a>

यदि आप किसी अन्य बैकएंड का उपयोग करते हैं तो बैकएंड नाम से 'फ़ेसबुक' बदलें।

उपयोगकर्ताओं को लॉग आउट करना

एक बार जब आप उपयोगकर्ताओं को लॉग इन कर लेते हैं, तो संभवतः आप उन्हें वापस लॉग आउट करने के लिए कार्यक्षमता बनाना चाहते हैं। कुछ टेम्पलेट में, जहाँ टेम्पलेट में लॉग दिखाया गया था, के पास होने की संभावना, निम्नलिखित टैग जोड़ें:

<a href="{% url 'logout' %}">Logout</a>

या

<a href="/logout">Logout</a>

आप अपनी urls.py फ़ाइल को कोड के समान संपादित करना चाहेंगे:

url(r'^logout/$', views.logout, name='logout'),

अंतिम बार अपने विचारों को फ़ाइल के समान कोड के साथ संपादित करें:

def logout(request):
    auth_logout(request)
    return redirect('/')

Django अल्लाथ का उपयोग करना

मेरे सभी प्रोजेक्ट्स के लिए, Django-Allauth एक ऐसा रहा जो सेटअप करना आसान है, और कई विशेषताओं के साथ बॉक्स से बाहर निकलता है, जबकि इसके साथ ही सीमित है:

  • कुछ 50+ सामाजिक नेटवर्क प्रमाणीकरण
  • स्थानीय और सामाजिक दोनों खातों के मिक्सअप
  • एकाधिक सामाजिक खाते
  • सामाजिक खातों के लिए वैकल्पिक तत्काल-साइनअप - कोई प्रश्न नहीं पूछा गया
  • ई-मेल पता प्रबंधन (कई ई-मेल पते, एक प्राथमिक सेटिंग)
  • पासवर्ड भूल गए प्रवाह ई-मेल पता सत्यापन प्रवाह

यदि आप अपने हाथों को गंदा करने में रुचि रखते हैं, तो आपके प्रमाणीकरण प्रणाली की प्रक्रिया और उपयोग को बढ़ाने के लिए अतिरिक्त कॉन्फ़िगरेशन के साथ, Django-Allauth रास्ते से बाहर हो जाता है।

नीचे दिए गए चरण मान लेते हैं कि आप Django 1.10+ का उपयोग कर रहे हैं

सेटअप चरण:

pip install django-allauth

अपनी settings.py फ़ाइल में, निम्नलिखित बदलाव करें:

# Specify the context processors as follows:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                # Already defined Django-related contexts here

                # `allauth` needs this from django. It is there by default,
                # unless you've devilishly taken it away.
                'django.template.context_processors.request',
            ],
        },
    },
]

AUTHENTICATION_BACKENDS = (
    # Needed to login by username in Django admin, regardless of `allauth`
    'django.contrib.auth.backends.ModelBackend',

    # `allauth` specific authentication methods, such as login by e-mail
    'allauth.account.auth_backends.AuthenticationBackend',
)

INSTALLED_APPS = (
# Up here is all your default installed apps from Django

# The following apps are required:
'django.contrib.auth',
'django.contrib.sites',

'allauth',
'allauth.account',
'allauth.socialaccount',

# include the providers you want to enable:
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.facebook',
)

# Don't forget this little dude.
SITE_ID = 1

ऊपर दिए गए settings.py फ़ाइल में परिवर्तन के साथ, urls.py फ़ाइल पर जाएँ। यह आपका yourapp/urls.py या आपका ProjectName/urls.py । आम तौर पर, मैं ProjectName/urls.py पसंद करता हूं।

urlpatterns = [
    # other urls here
    url(r'^accounts/', include('allauth.urls')),
    # other urls here
]

बस इसमें include('allauth.urls') , आपको मुफ्त में ये url देता है:

^accounts/ ^ ^signup/$ [name='account_signup']
^accounts/ ^ ^login/$ [name='account_login']
^accounts/ ^ ^logout/$ [name='account_logout']
^accounts/ ^ ^password/change/$ [name='account_change_password']
^accounts/ ^ ^password/set/$ [name='account_set_password']
^accounts/ ^ ^inactive/$ [name='account_inactive']
^accounts/ ^ ^email/$ [name='account_email']
^accounts/ ^ ^confirm-email/$ [name='account_email_verification_sent']
^accounts/ ^ ^confirm-email/(?P<key>[-:\w]+)/$ [name='account_confirm_email']
^accounts/ ^ ^password/reset/$ [name='account_reset_password']
^accounts/ ^ ^password/reset/done/$ [name='account_reset_password_done']
^accounts/ ^ ^password/reset/key/(?P<uidb36>[0-9A-Za-z]+)-(?P<key>.+)/$ [name='account_reset_password_from_key']
^accounts/ ^ ^password/reset/key/done/$ [name='account_reset_password_from_key_done']
^accounts/ ^social/
^accounts/ ^google/
^accounts/ ^twitter/
^accounts/ ^facebook/
^accounts/ ^facebook/login/token/$ [name='facebook_login_by_token']

अंत में, python ./manage.py migrate , Django-allauth का माइग्रेशन डेटाबेस में करने के लिए माइग्रेट करें।

हमेशा की तरह, आपके द्वारा जोड़े गए किसी भी सामाजिक नेटवर्क का उपयोग करके अपने ऐप में लॉग इन करने में सक्षम होने के लिए, आपको नेटवर्क के सामाजिक खाते के विवरण को जोड़ना होगा।

Django एडमिन ( localhost:8000/admin ) में लॉग इन करें और Social Applications तहत अपने सोशल अकाउंट डिटेल्स को ऐड करें।

सामाजिक अनुप्रयोग अनुभागों में भरने के लिए विवरण प्राप्त करने के लिए आपको प्रत्येक भागीदार प्रदाता के खातों की आवश्यकता हो सकती है।

आपके पास क्या हो सकता है और ट्विक करने के विस्तृत कॉन्फ़िगरेशन के लिए, कॉन्फ़िगरेशन पेज देखें



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow