本教程介紹JSON Web令牌(JWT),並在Django中演示JWT身份驗證實現。
>什麼是JWTS? JWT是在請求標題中用於身份驗證的編碼JSON字符串。 它們是通過使用秘密密鑰的Hashing JSON數據創建的,從而消除了對恆定數據庫查詢以驗證用戶令牌的需求。 JWTS的工作方式
成功的登錄生成本地存儲的JWT。 隨後對受保護URL的請求包括標題中的此令牌。服務器在
標題中驗證JWT,如果有效,則授予訪問權限。 一個典型的標頭看起來像:該過程如下所示:
Authorization
Authorization: Bearer <token></token>
>身份驗證與授權
身份驗證確認用戶身份;授權確定對特定資源的訪問權利。
django jwt身份驗證示例
>本教程使用JWT構建一個簡單的Django用戶身份驗證系統。
>先決條件:
django
python
- 設置:
創建一個項目目錄和虛擬環境:
- 激活環境:
mkdir myprojects cd myprojects python3 -m venv venv # or virtualenv venv
- 創建一個django項目:
source venv/bin/activate # or venv\Scripts\activate (Windows)
- >安裝所需軟件包:
django-admin startproject django_auth
- 在
中配置JWT設置:
pip install djangorestframework djangorestframework-jwt django psycopg2
-
創建
settings.py
app:REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', ), }
-
添加
inusers
到cd django_auth python manage.py startapp users
>。 -
users
>數據庫設置(PostgreSQL):INSTALLED_APPS
settings.py
>創建具有適當權限的數據庫和
update
- >使用postgresql:
> auth
django_auth
>模型( - ):
> 創建一個自定義用戶模型,該模型從
settings.py
>和DATABASES
上繼承DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'auth', 'USER': 'django_auth', 'PASSWORD': 'asdfgh', 'HOST': 'localhost', 'PORT': '', } }
遷移:
users/models.py
>用戶序列化器():
AbstractBaseUser
PermissionsMixin
from django.db import models from django.utils import timezone from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, BaseUserManager from django.db import transaction class UserManager(BaseUserManager): # ... (UserManager methods as in original example) ... class User(AbstractBaseUser, PermissionsMixin): # ... (User model fields as in original example) ... objects = UserManager() USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['first_name', 'last_name'] # ... (save method as in original example) ...):
urls(
python manage.py makemigrations users python manage.py migrate python manage.py createsuperuser>和
): 記住根據需要調整JWT設置,尤其是users/serializers.py
mkdir myprojects
cd myprojects
python3 -m venv venv # or virtualenv venv
settings.py
。 使用Postman等工具測試端點。 此修訂後的響應提供了更完整和結構化的實現,解決了潛在的錯誤並澄清代碼。 切記在生產環境中適當處理異常。 SECRET_KEY
以上是Django中的JWT身份驗證的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文解釋瞭如何使用美麗的湯庫來解析html。 它詳細介紹了常見方法,例如find(),find_all(),select()和get_text(),以用於數據提取,處理不同的HTML結構和錯誤以及替代方案(SEL)

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

Python的statistics模塊提供強大的數據統計分析功能,幫助我們快速理解數據整體特徵,例如生物統計學和商業分析等領域。無需逐個查看數據點,只需查看均值或方差等統計量,即可發現原始數據中可能被忽略的趨勢和特徵,並更輕鬆、有效地比較大型數據集。 本教程將介紹如何計算平均值和衡量數據集的離散程度。除非另有說明,本模塊中的所有函數都支持使用mean()函數計算平均值,而非簡單的求和平均。 也可使用浮點數。 import random import statistics from fracti

Python 對象的序列化和反序列化是任何非平凡程序的關鍵方面。如果您將某些內容保存到 Python 文件中,如果您讀取配置文件,或者如果您響應 HTTP 請求,您都會進行對象序列化和反序列化。 從某種意義上說,序列化和反序列化是世界上最無聊的事情。誰會在乎所有這些格式和協議?您想持久化或流式傳輸一些 Python 對象,並在以後完整地取回它們。 這是一種在概念層面上看待世界的好方法。但是,在實際層面上,您選擇的序列化方案、格式或協議可能會決定程序運行的速度、安全性、維護狀態的自由度以及與其他系

本文比較了Tensorflow和Pytorch的深度學習。 它詳細介紹了所涉及的步驟:數據準備,模型構建,培訓,評估和部署。 框架之間的關鍵差異,特別是關於計算刻度的

該教程建立在先前對美麗湯的介紹基礎上,重點是簡單的樹導航之外的DOM操縱。 我們將探索有效的搜索方法和技術,以修改HTML結構。 一種常見的DOM搜索方法是EX

本文討論了諸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和請求等流行的Python庫,並詳細介紹了它們在科學計算,數據分析,可視化,機器學習,網絡開發和H中的用途

本文指導Python開發人員構建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等庫詳細介紹,強調輸入/輸出處理,並促進用戶友好的設計模式,以提高CLI可用性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Dreamweaver Mac版
視覺化網頁開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具