“## 第四天
#100daysofMiva 編碼挑戰賽已經進行四天了。 ???
? 深入了解 django:從頭開始構建安全的用戶身份驗證 api!
您準備好將您的 Django 技能提升到新水平了嗎? ? 在本教程中,我將指導您使用 Django 創建強大的用戶身份驗證 API。無論您是經驗豐富的開發人員還是新手,本分步指南都將引導您完成設置用戶注冊、登錄和基于令牌的身份驗證。
在本課程結束時,您將充分了解如何:
-
設置 Django 項目并配置必要的包
為用戶數據創建和自定義序列化器
構建視圖來處理用戶注冊和身份驗證
實施基于令牌的身份驗證以實現安全的 API 訪問
加入我們,我們將空白畫布轉變為強大的身份驗證系統,并在您的 Django 之旅中解鎖新的可能性! ??
讓我們開始編碼吧! ??
第 1 步:設置 Django 環境:
為此,您需要安裝python:通過運行以下命令確保Python已安裝:
macOS/Linux:
Python 通常是預先安裝的。您可以通過運行來檢查:
或
如果需要,通過 Homebrew (macOS) 或包管理器 (Linux) 安裝 Python:
Windows:
從 python.org 下載并安裝 Python。
確保在安裝過程中選中將 Python 添加到您的 PATH 的復選框。
步驟 2. 設置虛擬環境:
macOS/Linux:
創建并激活虛擬環境:
Windows:
創建并激活虛擬環境:
步驟 3. 安裝 Django 和軟件包
現在沒有包的框架是什么?…讓我們安裝我們需要的包。?
激活虛擬環境后,安裝 Django 和其他軟件包的命令在所有操作系統上都是相同的:
說明:
`
-
djangorestframework:這是一個強大而靈活的工具包,用于使用 Django 構建 Web API。
djangorestframework-simplejwt:該包提供 JSON Web Token (JWT) 身份驗證,通常用于安全 API 身份驗證。
步驟 4. 創建并配置 Django 項目
macOS/Linux/Windows:
創建 Django 項目和應用程序:
讓我們簡化必要的事情:
-
startproject1:此命令創建一個新的 Django 項目。項目是 Django 實例的設置集合,包括數據庫配置、Django 特定選項和應用程序特定設置。
startapp:這會在項目中創建一個新應用程序。應用程序是項目的組件,用于處理特定功能(例如用戶管理)。
步驟 5. 更新項目設置
所有操作系統:
修改settings.py以包含您的應用程序和已安裝的軟件包。
文件:auth_project/settings.py
我們來解釋一下吧?:
INSTALLED_APPS:這是您注冊應用程序和第三方軟件包的地方。在這里,您添加用于API功能的rest_framework,用于JWT身份驗證的rest_framework_simplejwt,以及用于管理用戶相關任務的用戶(您創建的應用程序)。
一次不知道所有步驟也沒關系…只需要練習,你就會做對的
我希望你能關注…這并不難,但很復雜?
(不知道有沒有效果?)…
繼續前進…?
從這里抬起頭來看著伙計們?
步驟 6. 創建序列化器
文件:users/serializers.py
說明:
-
**序列化器**:在 Django REST Framework 中,序列化器用于將復雜數據類型(如 Django 模型)轉換為 JSON,反之亦然。
**RegisterSerializer**:此自定義序列化程序處理用戶注冊。它包括用戶名、密碼、電子郵件等字段。
**validate_password**:確保密碼符合某些安全標準。
**驗證方法**:自定義驗證來檢查兩個密碼字段是否匹配。
**create**方法:該方法負責創建并保存新用戶。
第7步:創建視圖
文件:users/views.py
說明:
-
**視圖**:在 Django 中,視圖處理處理用戶請求的邏輯。
**RegisterView**:該視圖處理用戶注冊。
**CreateAPIView**:用于處理新記錄創建的內置視圖。這里,它用于創建一個新用戶。
**permission_classes**:AllowAny 意味著任何人都可以訪問此端點,甚至是未經身份驗證的用戶,這是注冊所必需的。
第 8 步:設置 URL
文件:users/urls.py
此代碼寫在應用程序的 URL 中
說明:
URL 模式:這些定義映射到視圖的路徑。
**register/**:此 URL 將處理用戶注冊。
然后轉到您的項目文件:**auth_project/urls.py**
然后輸入這個…?
說明:
-
**include(‘users.urls’)**:這包括用戶應用程序的 URL。
智威湯遜觀點:
TokenObtainPairView:此視圖返回一對訪問令牌和刷新令牌。
TokenRefreshView:此視圖允許客戶端使用刷新令牌刷新訪問令牌。
**TokenObtainPairView**:此視圖返回一對訪問和刷新令牌。
**TokenRefreshView**:此視圖允許客戶端使用刷新令牌刷新訪問令牌。
到下一個這里就可以好好休息了?…以后就沒有壓力了呵呵..
第 9 步:運行遷移
命令:
這樣做的功能/目的是,它根據您在項目中定義的模型和字段對數據庫架構進行更改。我們上面精心策劃的那些?
換句話說,它使項目保持最新狀態
第10步:運行服務器并測試
命令:
此命令啟動 Django 開發服務器,使您的項目可以在本地訪問。 (您當地的港口)
現在讓我們看看到目前為止我們做了什么……
使用 Postman 或 cURL 進行測試(您可以從 IDE 下載此擴展)
使用郵遞員
-
打開Postman(或任何你喜歡的API測試工具)。
設置新請求
1.網址:http://127.0.0.1:8000/api/auth/register/
2.方法:郵寄
-
在 Body 選項卡中,選擇 raw 和 JSON 格式。
輸入以下 JSON 數據:
身體:
- 點擊發送。
對于這一部分,Django-Rest Framework 有一個友好的用戶界面,因此比其他框架更容易在這里導航
如果成功,您應該收到 HTTP 狀態代碼 201 Created 的響應以及包含用戶數據的 JSON 響應。
測試令牌身份驗證端點
為了確保 JWT 身份驗證正常工作,請測試令牌端點。
使用郵遞員:
- 設置新請求:
方法:郵寄
網址:http://127.0.0.1:8000/api/token/
在 Body 選項卡中,選擇 raw 和 JSON 格式。
輸入以下 JSON 數據
4、點擊發送。
您應該收到帶有訪問和刷新令牌的 JSON 響應:
**
故障排除技巧
**
服務器未啟動:確保您位于正確的目錄中并已激活虛擬環境。
端點錯誤:仔細檢查您的 URL 路徑并確保您的 Django 應用程序已使用 URL 正確設置。
無效響應:驗證您的 API 端點和序列化器是否已正確配置。
通過執行這些步驟,您應該能夠成功運行 Django 開發服務器、測試注冊端點并驗證基于令牌的身份驗證。