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 等軟體包可以使實施過程更加順暢和快速。

更新於: 2023年5月22日

348 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始
廣告