Computer >> Máy Tính >  >> Lập trình >> Python

Sử dụng djoser trong Django để xác thực mã thông báo mà không có lượt xem

Djoser là một thư viện xác thực đơn giản cho Django. Nó được sử dụng để tạo mã thông báo để xác thực; mã thông báo đã tạo này được tạo bằng cách lấy ba trường: tên người dùng, email mật khẩu. Nó chỉ hoạt động theo yêu cầu POST, nhưng bạn có thể thêm giao diện người dùng của nó.

Ví dụ

Tạo một dự án Django và một ứng dụng. Tôi đã đặt tên chúng là "DjoserExample" "myapp" .

Cài đặt hai gói -

pip install djoser
pip install djangorestframework

Trong settings.py, thêm các dòng sau -

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"
}

Tại đây, chúng tôi đã thêm djoser khung làm việc lại như một ứng dụng. Sau đó, chúng tôi đã thêm phần phụ trợ xác thực của khung REST và cho djoser, chúng tôi đã thêm User ID trường (tức là trường Chỉ mục).

Chúng tôi đang sử dụng cơ sở dữ liệu xác thực người dùng mặc định của Django, vì vậy chúng tôi thực sự không cần ứng dụng.

Truy cập urls.py của dự án và thêm các dòng sau -

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'))
]

Ở đây chúng tôi đã xác định url quản trị djoser rồi đến chương trình phụ trợ xác thực djoser.

Với điều đó, mọi thứ đã được thiết lập. Bây giờ hãy chạy các lệnh này trên thiết bị đầu cuối và kiểm tra kết quả -

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

Đầu ra

Trên https://127.0.0.1:8000/api/v1/users/ -

Sử dụng djoser trong Django để xác thực mã thông báo mà không có lượt xem

Tại đây, bạn sẽ tạo người dùng.

Trên https://127.0.0.1:8000/api/v1/token/login -

Sử dụng djoser trong Django để xác thực mã thông báo mà không có lượt xem

Tại đây, bạn sẽ tạo mã thông báo cho người dùng bằng cách cung cấp tên người dùng và mật khẩu.