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