在 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" }
在這裡,我們添加了 djoser 和 restframework 作為應用程式。然後我們添加了 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 -
在這裡,您將透過提供使用者名稱和密碼為使用者生成令牌。
廣告