掌握 Django:從頭開始建立安全的使用者身份驗證 API

WBOY
發布: 2024-08-25 06:01:06
原創
223 人瀏覽過

``## 第四天
#100daysofMiva 編碼挑戰已經開始四天了。 ???

?深入了解 Django:從頭開始建立安全的使用者驗證 API!

您準備好將您的 Django 技能提升到新水平了嗎? ?在本教程中,我將指導您使用 Django 創建強大的用戶身份驗證 API。無論您是經驗豐富的開發人員還是新手,本逐步指南都將引導您完成設定使用者註冊、登入和基於令牌的身份驗證。

在本課程結束時,您將充分了解如何

  1. 設定 Django 專案並配置必要的套件
  2. 為使用者資料建立和自訂序列化器
  3. 建置檢視來處理使用者註冊和驗證
  4. 實作基於令牌的身份驗證以實現安全的 API 存取
  5. 加入我們,我們將空白畫布轉變為強大的身份驗證系統,並在您的 Django 之旅中解鎖新的可能性! ??

讓我們開始編碼吧! ?✨

Mastering Django: Building a Secure User Authentication API from Scratch

第 1 步:設定 Django 環境:

為此,您需要安裝python:透過運行確保Python已安裝
macOS/Linux:
Python 通常是預先安裝的。您可以透過運行來檢查:
Mastering Django: Building a Secure User Authentication API from Scratch

Mastering Django: Building a Secure User Authentication API from Scratch
如果需要,請透過 Homebrew (macOS) 或套件管理器 (Linux) 安裝 Python:
Mastering Django: Building a Secure User Authentication API from Scratch

Windows:

  • 從 python.org 下載並安裝 Python。
  • 確保選中該複選框以在安裝過程中將 Python 新增至您的 PATH。

步驟 2. 設定虛擬環境:

macOS/Linux:

建立並啟動虛擬環境:

Mastering Django: Building a Secure User Authentication API from Scratch

Windows:

建立並啟動虛擬環境:

Mastering Django: Building a Secure User Authentication API from Scratch

步驟 3. 安裝 Django 和軟體包

現在沒有軟體包的框架是什麼? ....讓我們安裝我們需要的軟體包。 ?
啟動虛擬環境後,安裝 Django 和其他軟體包的命令在所有作業系統上都是相同的:

Mastering Django: Building a Secure User Authentication API from Scratch
說明:
`

  1. djangorestframework:這是一個強大且靈活的工具包,用於使用 Django 建立 Web API。
  2. djangorestframework-simplejwt:此套件提供 JSON Web Token (JWT) 驗證,通常用於安全 API 驗證。

步驟 4. 建立並設定 Django 項目

macOS/Linux/Windows:

建立 Django 專案和應用程式:

Mastering Django: Building a Secure User Authentication API from Scratch
讓我們簡化必要的事情:

  1. startproject1:此指令建立一個新的 Django 專案。專案是 Django 實例的設定集合,包括資料庫配置、Django 特定選項和應用程式特定設定。
  2. startapp:這會在專案中建立一個新應用程式。應用程式是專案的元件,用於處理特定功能(例如使用者管理)。

步驟 5. 更新專案設置

所有作業系統:

修改settings.py以包含您的應用程式和已安裝的軟體包。
檔案:auth_project/settings.py

Mastering Django: Building a Secure User Authentication API from Scratch

解釋一下好嗎? :

INSTALLED_APPS:這是您註冊應用程式和第三方軟體包的位置。在這裡,您新增rest_framework用於API功能,rest_framework_simplejwt用於JWT身份驗證,以及使用者(您建立的應用程式)用於管理使用者相關任務。

一次不知道所有步驟也沒關係...只要練習,你就會做對

我希望你能關注...這並不難,但很複雜?
(不知道有沒有效果?)...

繼續...?
從這裡抬起你的眼睛看著夥計們?

步驟 6. 建立序列化器

文件:users/serializers.py

Mastering Django: Building a Secure User Authentication API from Scratch

說明:

  1. **序列化器**:在 Django REST Framework 中,序列化器用於將複雜資料類型(如 Django 模型)轉換為 JSON,反之亦然。
  2. **RegisterSerializer**:此自訂序列化程式處理使用者註冊。它包括用戶名、密碼、電子郵件等欄位
  3. **validate_password**:確保密碼符合某些安全標準。
  4. **驗證方法**:自訂驗證以檢查兩個密碼欄位是否符合。
  5. **create**方法:此方法負責建立並儲存新使用者。

第7步:建立視圖

檔案:users/views.py

Mastering Django: Building a Secure User Authentication API from Scratch
說明:

  1. **檢視**:在 Django 中,檢視處理處理使用者要求的邏輯。
  2. **RegisterView**:此視圖處理使用者註冊。
  3. **CreateAPIView**:用於處理新記錄建立的內建視圖。在這裡,它用於創建一個新用戶。
  4. **permission_classes**:AllowAny 意味著任何人都可以存取此端點,甚至是未經身份驗證的用戶,這是註冊所必需的。

第 8 步:設定 URL

檔案:users/urls.py
此程式碼寫在應用程式的 URL

Mastering Django: Building a Secure User Authentication API from Scratch

說明:

URL 模式:定義對應到檢視的路徑。
**register/**:此 URL 將處理使用者註冊。

然後前往您的專案檔:**auth_project/urls.py**
然後輸入這個...?

Mastering Django: Building a Secure User Authentication API from Scratch

說明:

  1. **include('users.urls')**:這包括使用者應用程式的 URL。
  2. 智威湯遜觀點: TokenObtainPairView:此視圖傳回一對存取權杖和刷新權杖。 TokenRefreshView:此視圖允許用戶端使用刷新令牌刷新存取權杖。
  3. **TokenObtainPairView**:此視圖傳回一對存取和刷新令牌。
  4. **TokenRefreshView**:此視圖允許用戶端使用刷新令牌刷新存取權杖。

到下一個這裡就可以好好休息了嗎? ....以後就沒有壓力了呵呵..

第 9 步:運行遷移

指令:

Mastering Django: Building a Secure User Authentication API from Scratch

這樣做的功能/目的是,它根據您在專案中定義的模型和欄位對資料庫架構進行更改。我們上面精心策劃的那些?

換句話說,它使專案保持最新

第10步:運行伺服器並測試

指令:

Mastering Django: Building a Secure User Authentication API from Scratch

此命令啟動 Django 開發伺服器,使您的專案可以在本機上存取。 (您當地的港口)

現在讓我們看看到目前為止我們做了什麼...

使用 Postman 或 cURL 進行測試(您可以從 IDE 下載此擴充功能)

使用郵差

  1. 開啟 Postman(或任何您喜歡的 API 測試工具)。

  2. 設定新請求

  • 1.網址:http://127.0.0.1:8000/api/auth/register/
  • 2.方法:POST
  1. 在「正文」標籤中,選擇原始格式和 JSON 格式。

  2. 輸入以下 JSON 資料:
    身體:

Mastering Django: Building a Secure User Authentication API from Scratch

  1. 點選發送。

對於這一部分,Django-Rest Framework 有一個友善的使用者介面,因此比其他框架更容易導航

如果成功,您應該會收到帶有 HTTP 狀態碼 201 Created 的回應以及包含使用者資料的 JSON 回應。

測試令牌身份驗證端點

為了確保 JWT 驗證正常運作,請測試令牌端點。

使用郵差:

  1. 設定新請求: 方法:郵寄 網址:http://127.0.0.1:8000/api/token/
  2. 在「正文」標籤中,選擇原始格式和 JSON 格式。
  3. 輸入以下 JSON 資料

Mastering Django: Building a Secure User Authentication API from Scratch

4、點擊發送。
您應該收到帶有存取和刷新令牌的 JSON 回應:

Mastering Django: Building a Secure User Authentication API from Scratch

**

故障排除技巧

**
伺服器未啟動:確保您位於正確的目錄中並已啟動虛擬環境。
端點錯誤:仔細檢查您的 URL 路徑並確保您的 Django 應用程式已使用 URL 正確設定。
無效回應:驗證您的 API 端點和序列化器是否已正確配置。
透過執行這些步驟,您應該能夠成功運行 Django 開發伺服器、測試註冊端點並驗證基於令牌的身份驗證。

以上是掌握 Django:從頭開始建立安全的使用者身份驗證 API的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!