تعرف على كيفية إنشاء نظام تسجيل دخول آمن باستخدام حسابات الوسائط الاجتماعية في Django باستخدام OAuth.

المصادقة الاجتماعية هي وسيلة لتأكيد هوية الشخص من خلال حساب اجتماعي بدلاً من استخدام كلمات المرور. في تطوير الويب، من المفيد دائمًا مصادقة المستخدمين بدون كلمات مرور. وبهذه الطريقة، يمكنهم تسجيل الدخول عبر تطبيقات التواصل الاجتماعي مثل Google أو Twitter أو GitHub.

يعد تمكين المصادقة الاجتماعية طريقة رائعة لتعزيز أمان التطبيق الخاص بك عن طريق تقليل مخاطر الثغرات الأمنية الشائعة المتعلقة بكلمة المرور. سيؤدي ذلك أيضًا إلى تحسين تجربة المستخدم لتطبيقك لأن المستخدمين لن يحتاجوا إلى تذكر العديد من كلمات المرور.

مصادقة المستخدم في جانغو

يوفر Django نظام مصادقة افتراضيًا للمطورين للعمل معه. ومع ذلك، يستخدم نظام المصادقة هذا المصادقة التقليدية، والتي تتضمن جمع البيانات يدويًا مثل اسم المستخدم والبريد الإلكتروني وكلمة المرور والاسم الأول واسم العائلة للمستخدم.

حسب التصميم، يعد نظام مصادقة Django عامًا جدًا ولا يوفر العديد من الميزات المستخدمة في معظم أنظمة مصادقة الويب اليوم. لاستكمال ذلك، ستحتاج إلى استخدام حزم الطرف الثالث مثل جانغو-Allauth طَرد.

instagram viewer

كيفية تمكين OAuth في جانغو

لمصادقة المستخدمين باستخدام OAuth في تطبيق Django، يمكنك استخدام حزمة Django تسمى جانغو-Allauth.

Django Allauth عبارة عن حزمة تتعامل مع المصادقة والتسجيل وإدارة الحساب ومصادقة حساب الطرف الثالث (الاجتماعي) لمشروع Django الخاص بك. ستوجهك الخطوات التالية نحو إعداد Django Allauth لمشروع Django الخاص بك.

الخطوة 1: تثبيت وإعداد Django-Allauth

إذا كنت لم تفعل ذلك بعد، خلق بيئة افتراضية وتثبيت جانغو-Allauth عبر النقطة:

pip install django-allauth

لاحظ أنه يجب عليك استخدام Python 3.5 أو أعلى وDjango 2.0 أو أعلى حتى يعمل.

الخطوة 2: إضافة التطبيقات المطلوبة إلى Django لـ Django-Allauth

بعد التثبيت جانغو-Allauth، افتح settings.py الملف وإضافة التطبيقات التالية إلى ملفك INSTALLED_APPS قائمة:

INSTALLED_APPS = [


Add your other apps here

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

فيما يلي بعض النقاط التي يجب ملاحظتها حول بعض التطبيقات المذكورة أعلاه:

  • ال allauth.socialaccount سيسمح التطبيق للمستخدمين بتسجيل الدخول من خلال تطبيقات التواصل الاجتماعي مثل X (Twitter سابقًا) وInstagram وGitHub وغيرها.
  • ال django.contrib.sites التطبيق عبارة عن إطار عمل Django مدمج مطلوب لـ جانغو-Allauth للعمل. يوفر التطبيق القدرة على إدارة وتمييز مواقع متعددة ضمن مشروع Django واحد. يمكنك فهم كيفية عمله من خلال الرجوع إلى وثائق جانغو.

الخطوة 3: تحديد الواجهات الخلفية للمصادقة لمشروعك

الخطوة التالية هي تحديد الطريقة التي تريد بها مصادقة المستخدمين. يمكنك القيام بذلك عن طريق تكوين AUTHENTICATION_BACKENDS في الخاص بك settings.py ملف. ل جانغو-Allauth، يجب عليك إضافة هذه:

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

يحدد مقتطف الكود أعلاه واجهتين خلفيتين للمصادقة:

  1. الأول هو الافتراضي الذي يستخدمه Django. سيسمح هذا للمستخدم المسؤول بتسجيل الدخول إلى لوحة الإدارة بغض النظر عن تكوين django-allauth.
  2. أما الخيار الثاني فيحدد الواجهة الخلفية للمصادقة لـ جانغو-Allauth.

الخطوة 4: أضف معرف الموقع الخاص بك

في ملف الإعدادات الخاص بك، يجب عليك إضافة المعرف الخاص بموقعك. هنا مثال:

SITE_ID = 1

بشكل افتراضي، هناك موقع يسمى example.com في لوحة الإدارة. يمكنك أن تقرر تعديل هذا الموقع أو إضافة موقع خاص بك. في كلتا الحالتين، يجب عليك تسجيل الدخول إلى لوحة الإدارة والانتقال إلى مواقع برنامج.

للحصول على معرف الموقع لموقع Django، افتح ملف واجهة سطر الأوامر (CLI) وقم بتشغيل هذا الأمر:

python manage.py shell

بعد ذلك، اكتب هذا البرنامج النصي في Python 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: تكوين عناوين URL الخاصة بك

في مشروعك urls.py الملف، قم بتكوين نمط URL لـ جانغو-Allauth. هذه هي الطريقة التي ينبغي أن تبدو وكأنها:

from django.urls import path, include

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

باستخدام هذا الإعداد، يمكنك بدء تشغيل خادم التطوير الخاص بك والانتقال إلى http://127.0.0.1:8000/accounts/. اذا كنت تمتلك تصحيح ضبط ل حقيقي، من المفترض أن تشاهد قائمة بأنماط عناوين URL المتوفرة لـ جانغو-Allauth.

إذا قمت بما ورد أعلاه، فيجب أن يكون مشروعك جاهزًا للمصادقة الاجتماعية.

كيفية تنفيذ تسجيل الدخول/الاشتراك في Google في تطبيق Django الخاص بك

بعد الإعداد جانغو-Allauth، يجب أن تكون مستعدًا للسماح للمستخدمين بمصادقة أنفسهم باستخدام حساباتهم الاجتماعية مثل Google.

الخطوة 1: قم بتسجيل مزود حسابك الاجتماعي في تطبيقاتك المثبتة

في الخاص بك settings.py الملف، يجب عليك إضافة موفر الحساب الاجتماعي فيه INSTALLED_APPS. في هذه الحالة، هو جوجل. الخيارات الأخرى هي Instagram وX وما إلى ذلك.

INSTALLED_APPS = [


Add your other apps here

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

الخطوة 2: قم بإنشاء معرف العميل الخاص بك والمفتاح السري على Google

لإكمال هذه الخطوة، يجب أن يكون لديك حساب Google تم إنشاؤه. إذا قمت بذلك، فاتبع الخطوات التالية:

  1. توجه إلى وحدة تحكم جوجل السحابية لإنشاء مشروع جديد. أولا قم بالضغط على القائمة المنسدلة الموضحة في الصورة أدناه:
  2. التالي، انقر على مشروع جديد:
  3. أدخل اسمًا لمشروعك، ثم انقر فوق يخلق زر:
  4. بعد تحديد مشروعك، انقر فوق قائمة الهامبرغر. يختار واجهات برمجة التطبيقات والخدمات، ثم أوراق اعتماد:
  5. بعد ذلك، انقر على الخيار الذي يقول تكوين شاشة الموافقة وحدد خارجي:
  6. في الصفحة التالية، أدخل اسمًا لتطبيقك وقم بتضمين بريد إلكتروني عند الضرورة. يمكنك أيضًا استكشاف التكوينات لبعض التخصيص. بمجرد الانتهاء، انقر فوق احفظ واستمر.
  7. في القائمة اليسرى، حدد أوراق اعتماد. بعد ذلك اضغط على إنشاء بيانات الاعتماد وحدد معرف عميل OAuth.
  8. بعد ذلك، حدد نوع التطبيق وأدخل اسما لنفسه. لهذا البرنامج التعليمي، نوع التطبيق سوف يكون تطبيق ويب.
  9. بعد ذلك، قم بإضافة عناوين URI لـ أصول جافا سكريبت المعتمدة و عناوين URL لإعادة التوجيه المعتمدة. يجب أن يكون مضيف موقع الويب الخاص بك هو أصول JavaScript، وسيقوم النظام بإعادة توجيه المستخدمين إلى عنوان URI لإعادة التوجيه بعد المصادقة. يجب أن يحتوي عادةً عنوان URL لإعادة التوجيه على your-host-name/accounts/google/login/callback/. بالنسبة لوضع التطوير، سيكون: http://127.0.0.1:8000/accounts/google/login/callback/. انقر فوق يخلق عندما يتم ذلك مرة واحدة.
  10. بعد إنشاء بيانات الاعتماد، يمكنك نسخ ملفك معرف العميل أو سر العميل إلى مكان آمن أو تنزيلها كملفات JSON.

الخطوة 3: أضف معرف العميل والمفتاح السري إلى تطبيق Django الخاص بك

بعد إنشاء بيانات الاعتماد اللازمة، انتقل إلى http://127.0.0.1:8000/admin، يختار التطبيقات الاجتماعية، وإنشاء تطبيق اجتماعي جديد. اتبع هذه الخطوات لإنشاء تطبيق اجتماعي جديد:

  1. إضافة مزود. يشير الموفر إلى التطبيق الذي تقوم بمصادقة المستخدم به. في هذه الحالة، جوجل، وفي حالة أخرى، قد يكون سناب شات.
  2. أدخل اسمًا لتطبيقك الاجتماعي الجديد. تأكد من أنه اسم معقول
  3. لصق في معرف العميل قمت بنسخها من جوجل.
  4. ل المفتاح السري، الصق في سر العميل قمت بنسخها من جوجل.
  5. ال مفتاح لا ينطبق هذا الحقل على المصادقة مع Google، لذا تجاهله.
  6. أخيرًا، حدد موقعًا لربط التطبيق الاجتماعي به.

الخطوة 4: اختبر مصادقة Google الخاصة بك

قم بتسجيل الخروج من لوحة الإدارة الخاصة بك وانتقل إلى http://127.0.0.1:8000/accounts/login/. سيظهر لك خيار تسجيل الدخول عبر جوجل.

انقر عليها لإعادة التوجيه إلى شاشة الموافقة. بعد ذلك، حدد حسابًا لتسجيل الدخول به.

بمجرد تحديد الحساب، ستتم إعادة توجيهك إليه http://127.0.0.1:8000/accounts/profile/. هذا يعني أن تطبيقك يعمل بشكل مثالي. يمكنك إنشاء قوالب مخصصة لتحل محل القوالب الافتراضية.

تعزيز تسجيل المستخدم من خلال المصادقة الاجتماعية في جانغو

يعد تمكين المصادقة الاجتماعية طريقة رائعة لمساعدة المستخدمين لديك على الاستمتاع بتجربة رائعة في التسجيل لتطبيقك. هناك طرق أخرى لتمكين المصادقة في Django، ويجب عليك استكشافها لتحديد الأفضل لحالة الاستخدام الخاصة بك.