آنچه در این مقاله میخوانید [پنهانسازی]
برای پیاده سازی احراز هویت JWT در جنگو، میتوانید مراحل زیر را دنبال کنید. این روش برای ایمنسازی APIها مورد استفاده قرار میگیرد و به کاربران اجازه میدهد با استفاده از توکنهای JWT به سیستم احراز هویت کنند.
مراحل پیاده سازی:
- ایجاد پروژه و اپ جنگو:ابتدا مطمئن شوید که جنگو را نصب کردهاید و یک پروژه و اپ جدید ایجاد کردهاید:
django-admin startproject myproject cd myproject python manage.py startapp myapp
- نصب کتابخانههای مورد نیاز:برای پشتیبانی از JWT، باید پکیج djangorestframework_simplejwt را نصب کنید:
pip install djangorestframework_simplejwt
- تنظیمات در settings.py:مطمئن شوید که اپلیکیشنها و کتابخانههای مربوطه در تنظیمات پروژه اضافه شدهاند:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'myapp', ] REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_simplejwt.authentication.JWTAuthentication', ), }
- ایجاد View برای دریافت و تایید توکن JWT:در فایل views.py اپلیکیشن خود، میتوانید از Viewهای ارائه شده توسط djangorestframework_simplejwt استفاده کنید:
from rest_framework_simplejwt.views import ( TokenObtainPairView, TokenRefreshView, ) # در فایل urls.py مسیرها را اضافه کنید from django.urls import path urlpatterns = [ path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'), path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'), ]
- ایجاد و تنظیم مسیرها:مسیرهای اپلیکیشن خود را به urls.py اصلی پروژه اضافه کنید:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('myapp/', include('myapp.urls')), ]
- تست با استفاده از Postman یا Curl:با استفاده از ابزارهایی مانند Postman، میتوانید توکن JWT را از آدرس /api/token/ دریافت کنید. بدین منظور، درخواست POST به همراه اطلاعات کاربری (نام کاربری و رمز عبور) ارسال کنید تا توکن دریافت شود. سپس میتوانید از این توکن برای احراز هویت به APIهای دیگر استفاده کنید.
نتیجه گیری
با پیادهسازی احراز هویت JWT در جنگو، میتوانید احراز هویت امن و کارآمدی را برای APIهای خود فراهم کنید. با استفاده از توکنهای JWT، احراز هویت میتواند به شکل غیرمتمرکز و مستقل از سرور به راحتی مدیریت شود.