在 Django 中啟用 GitHub OAuth
在許多開發者網站上,我們都會看到 GitHub 社交認證,這非常方便。在本文中,我們將瞭解如何在 Django 網站中新增 Github 認證。
訪問 https://github.com/settings/developers/ 並建立一個 OAuth 應用程式,並新增以下兩個 URL
http://127.0.0.1:8000/accounts/github/login/callback
然後,您將獲得一個客戶端 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 並渲染了我們的檢視。
一切就緒,現在您可以繼續檢查輸出。
輸出

資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP