在 Django 中啟用 GitHub OAuth


在許多開發者網站上,我們都會看到 GitHub 社交認證,這非常方便。在本文中,我們將瞭解如何在 Django 網站中新增 Github 認證。

訪問 https://github.com/settings/developers/ 並建立一個 OAuth 應用程式,並新增以下兩個 URL

然後,您將獲得一個客戶端 ID 和一個金鑰。現在,讓我們進入編碼部分。

示例

安裝 **django-allauth** 庫 -

pip install django-allauth

在 **settings.py** 中新增以下程式碼行 -

INSTALLED_APPS = [
   ##################
#
#
#
#

   'django.contrib.sites',
   'allauth',
   'allauth.account',
   'allauth.socialaccount',
   'allauth.socialaccount.providers.github',
   'githubAuthentication'
]

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

LOGIN_REDIRECT_URL="https://github.com"

在 INSTALLED_APPS 中,我們添加了所需的匯入庫,然後添加了 GitHub 預設身份驗證後端。我們還啟用了重定向 URL,它將指示登入後重定向到的位置。

在專案根目錄的 **urls.py** 中 -

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
   path('admin/', admin.site.urls),

   # this is module path copy this as it is
path('accounts/', include('allauth.urls')),

# this is my app path
path('', include("githubAuthentication.urls"))
]

在這裡,我們添加了需要新增的預設路徑;它是 allauth 庫路徑,用於啟用 GitHub 登入。第二個是我們建立的應用程式路徑。

現在訪問 https://:8000/admin 並轉到社交應用程式。

然後,新增一個應用程式 -

貼上您之前複製的 **客戶端 ID** 和 **金鑰**,名稱應為應用程式名稱,選擇提供程式 **github**。

在 **站點** 部分,點選 **example.com**,然後點選箭頭鍵並點選儲存。這將在您的 Django 專案中註冊 **github** 作為身份驗證後端。

現在,在 **templates** 資料夾中建立 **home.html** 並新增以下程式碼行 -

<!DOCTYPE html>
<html>
   <head>
      <title>tut</title>
    </head>
    <body>
      {% load socialaccount %}
      {% providers_media_js %}
<a href="{% provider_login_url 'github' method='js_sdk' %}?n
ext=https://github.com">login with github</a>
   </body>
</html>

在這裡,我們簡單地渲染了 JS 並載入了 **allauth** 庫到前端。在 **<a>** 中,我們提供了 GitHub 登入頁面,在該頁面上我們設定了預設的 GitHub 登入頁面。

在 **view.py** 中 -

from django.shortcuts import render

# Create your views here.
def home(request):
   return render(request,"home.html")

我們在這裡渲染了我們的前端

在 **urls.py**(應用程式 url)中 -

from django.urls import path,include
from . import views
urlpatterns = [
   path('',views.home, name="Home" ),

]

我們在這裡設定了 url 並渲染了我們的檢視。

一切就緒,現在您可以繼續檢查輸出。

輸出


更新於: 2021-08-26

619 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告