在 Django 中使用 djoser 進行無需檢視的 Token 認證


Djoser 是一個用於 Django 的簡單身份驗證庫。它用於生成用於身份驗證的令牌;此生成的令牌是透過獲取三個欄位生成的:使用者名稱、電子郵件密碼。它僅適用於 POST 請求,但您可以新增其前端。

示例

建立一個 Django 專案和一個應用。我將它們命名為 "DjoserExample""myapp"

安裝兩個包 -

pip install djoser
pip install djangorestframework

settings.py 中,新增以下行 -

INSTALLED_APPS = [
#below every other apps
   'myapp',
   'rest_framework',
   'rest_framework.authtoken',
   'djoser'
]

# Below template variable
REST_FRAMEWORK = {
   'DEFAULT_AUTHENTICATION_CLASSES': (
      'rest_framework.authentication.TokenAuthentication',
   ),
   'DEFAULT_PERMISSION_CLASSES': [
      'rest_framework.permissions.IsAuthenticated',
   ]
}
DJOSER = {
   "USER_ID_FIELD": "username"
}

在這裡,我們添加了 djoserrestframework 作為應用程式。然後我們添加了 REST framework 的身份驗證後端,並且對於 djoser,我們添加了 使用者 ID 欄位(即索引欄位)。

我們使用 Django 的預設使用者身份驗證資料庫,因此我們實際上不需要應用程式。

轉到專案的 urls.py 並新增以下行 -

from django.contrib import admin
from django.urls import path,include,re_path

urlpatterns = [
   path('admin/', admin.site.urls),
   path('',include('myapp.urls')),
   path(r'api/v1/', include('djoser.urls')),
   path(r'api/v1/token/login, include('djoser.urls.authtoken'))
]

在這裡,我們定義了 djoser 管理員 url,然後定義 djoser 身份驗證後端。

有了這些,一切都設定好了。現在在終端上執行這些命令並檢查輸出 -

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

輸出

在 http://127.0.0.1:8000/api/v1/users/ -

在這裡,您將建立使用者。

在 http://127.0.0.1:8000/api/v1/token/login -

在這裡,您將透過提供使用者名稱和密碼為使用者生成令牌。

更新於: 2021年8月26日

2K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告