Django 中的電子郵件和社交登入 - 分步指南
電子郵件和社交登入是網站和應用程式常用的技術,允許使用者建立帳戶或登入。電子郵件登入需要使用者提供其電子郵件地址和密碼,而社交登入允許使用者使用其社交網路帳戶(例如 Facebook 或 Google)登入。在本教程中,我們將逐步講解如何在 Django 中設定電子郵件和社交登入。
方法
在 Django 中,有多種方法可以整合電子郵件和社交登入。其中最常用的是 Django-allauth 包,它支援多種登入方式的認證,包括電子郵件和社交登入。另一種方法是使用 Django-social-auth 包,它提供各種社交網路服務的社交認證。
語法
Django-allauth 安裝 -
pip install django-allauth
Django-social-auth 安裝 -
pip install django-social-auth
以下程式碼演示瞭如何使用 Django-allauth 在 Django 中實現電子郵件和社交登入 -
演算法
應安裝 Django-allauth 或 Django-social-auth。
在 settings.py 中配置身份驗證後端。
在 urls.py 中包含 allauth URL。
構建資料庫表並執行遷移。
為電子郵件驗證配置電子郵件後端。
修改模板以匹配您網站的外觀。
在 urls.py 中包含以下 URL
path('accounts/', include('allauth.urls')),
在 urls.py 中,程式碼行 "path('accounts/', include('allauth.urls'))" 包含 Django-allauth 包提供的 URL,該包管理多種登入方式(包括電子郵件和社交登入)的身份驗證。此程式碼行將 URL "accounts/" 轉換為 allauth URL,允許使用者訪問 Django-allauth 身份驗證檢視。
執行遷移以建立必要的資料庫表。
在 settings.py 中設定電子郵件後端以啟用電子郵件驗證
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
自定義 templates/account/ 中的模板以匹配您網站的設計。
按照以下步驟建立專案的環境和目錄 -
應安裝 Python 和 pip。
使用 virtualenv 或 venv 建立虛擬環境。
啟用虛擬環境。
使用 pip 安裝 Django。
使用 "django-admin startproject" 命令建立一個新的 Django 專案。
使用 "python manage.py startapp" 命令在專案中建立一個新的 Django 應用程式。
在 settings.py 中,將新應用程式新增到 INSTALLED_APPS 列表中。
在 models.py 中定義應用程式的模型。
使用 "python manage.py makemigrations" 和 "python manage.py migrate" 命令建立資料庫表。
在 settings.py 中配置身份驗證後端。
使用程式碼行 "path('accounts/', include('allauth.urls'))" 在 urls.py 中包含 allauth URL。
在 settings.py 中,為電子郵件驗證配置電子郵件後端。
修改 templates/account/ 中的模板以匹配您網站的樣式。
使用 "python manage.py runserver" 啟動 Django 開發伺服器並測試電子郵件和社交登入。
示例
第一段程式碼(在 settings.py 中)應新增到您專案的 settings.py 檔案中,您可以在其中設定 Django 專案的配置設定。
# settings.py INSTALLED_APPS = [ '...'; 'allauth', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.google', 'allauth.socialaccount.providers.facebook', ... ] AUTHENTICATION_BACKENDS = [ 'django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend', ] SOCIALACCOUNT_PROVIDERS = { 'google': { 'APP': { 'client_id': 'YOUR_CLIENT_ID', 'secret': 'YOUR_SECRET_KEY', 'key': '' } }, 'facebook': { 'APP': { 'client_id': 'YOUR_CLIENT_ID', 'secret': 'YOUR_SECRET_KEY', 'key': '' } } }
第二段程式碼(在 urls.py 中)應新增到您專案的 urls.py 檔案中,您可以在其中指定 Django 專案的 URL 模式。
# urls.py from django.urls import path, include urlpatterns = [ ... path('accounts/', include('allauth.urls')), ... ]
請記住,使用您實際的 Google 和 Facebook 開發者控制檯憑據替換 "YOUR CLIENT ID" 和 "YOUR SECRET KEY" 值。最後,在執行 Django 專案之前,請確保已安裝所有必需的軟體包(例如 Django-allauth)。
輸出
使用 Django-allauth 或 Django-social-auth 整合電子郵件和社交登入後,使用者可以使用其電子郵件或社交媒體帳戶建立帳戶或登入。
結論
在 Django 中使用電子郵件和社交登入可以改善使用者體驗,並簡化帳戶建立流程。使用 Django-allauth 或 Django-social-auth 等軟體包可以使實施過程更加順暢和快速。