احراز هویت با گوگل در جنگو django-allauth
- 1404/01/15
استفاده از شبکههای اجتماعی برای ورود به سیستمها و سایتها (که به آن Social Login یا Single Sign-On گفته میشود) مزایای زیادی برای کاربران و توسعهدهندگان دارد
از جمله مزایا:
سهولت در ورود: کاربران به راحتی از حسابهای شبکه اجتماعی خود وارد میشوند بدون نیاز به یادآوری رمز عبور.
پکیج django-allauth
یکی از محبوبترین و کاملترین پکیجها برای احراز هویت و مدیریت حسابهای کاربری در پروژههای Django است. این پکیج امکانات متنوعی از جمله ثبتنام، ورود، بازنشانی رمز عبور، تأیید ایمیل، احراز هویت از طریق شبکههای اجتماعی (مثل Google، Facebook، Twitter و ...) را فراهم میکند.
django-allauth
1. نصب پکیج
ابتدا باید پکیج django-allauth
را نصب کنید. برای این کار از دستور pip استفاده کنید:
pip install django-allauth
2. تنظیمات پروژه Django
پس از نصب پکیج، باید تنظیمات مربوط به آن را در پروژه Django خود اضافه کنید.
INSTALLED_APPS
:در فایل settings.py
، به لیست INSTALLED_APPS
موارد زیر را اضافه کنید:
INSTALLED_APPS = [
...
'django.contrib.sites', # این بخش ضروری است
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.google', # برای استفاده از ورود گوگل
...
]
AUTHENTICATION_BACKENDS
:در فایل settings.py
باید AUTHENTICATION_BACKENDS
را تنظیم کنید تا از django-allauth
برای احراز هویت استفاده شود:
AUTHENTICATION_BACKENDS = (
'allauth.account.auth_backends.AuthenticationBackend', # احراز هویت توسط allauth
)
SITE_ID
:پکیج django-allauth
نیاز دارد که شناسه سایت را در پروژه تعریف کنید. این کار را در settings.py
انجام دهید:
SITE_ID = 1
3. تنظیمات URL
در فایل urls.py
پروژه باید URLs مربوط به django-allauth
را اضافه کنید:
from django.urls import path, include
urlpatterns = [
path('accounts/', include('allauth.urls')), # مسیرهای allauth
]
4. تنظیمات قالبها
برای استفاده از قالبهای پیشفرض django-allauth
، میتوانید از قالبهای آماده این پکیج استفاده کنید. اگر میخواهید قالبهای خودتان را بسازید، باید فایلهای HTML زیر را در پروژه خود قرار دهید:
templates/account/login.html
templates/account/signup.html
templates/account/password_reset.html
templates/account/password_reset_done.html
5. پیکربندی شبکههای اجتماعی (اختیاری)
برای فعالسازی ورود از طریق شبکههای اجتماعی مانند گوگل، باید تنظیمات مربوط به آنها را در settings.py
انجام دهید. به عنوان مثال، برای گوگل:
Client ID
و Client Secret
settings.py
:SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': ['profile', 'email'],
'AUTH_PARAMS': {'access_type': 'online'},
'OAUTH_PKCE_ENABLED': True,
}
}
6. اجرای migrations
پس از انجام تنظیمات، باید migrations را اجرا کنید تا مدلهای django-allauth
در دیتابیس ایجاد شوند:
python manage.py migrate
7. راهاندازی پروژه
حال میتوانید سرور Django را راهاندازی کنید:
python manage.py runserver
8. استفاده از سیستم ورود و ثبتنام
با انجام این مراحل، سیستم احراز هویت با استفاده از django-allauth
در پروژه شما راهاندازی شده است. شما میتوانید صفحات ورود و ثبتنام را از طریق URLهایی مانند /accounts/login/
یا /accounts/signup/
مشاهده کنید.
django-allauth
رایگان ثبت نام کنید و اولین نفری باشید که از پست های جدید مطلع می شوید.