ViewSet তৈরি করা: Token Validation সহ
আপনি DRF এর ViewSet এবং permissions ব্যবহার করে একটি secure API তৈরি করতে পারেন, যেখানে token-based authentication validation করা হয়। এখানে একটি উদাহরণ ViewSet দেওয়া হলো যা শুধুমাত্র authenticated users এর জন্য accessible:
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
from rest_framework.authentication import TokenAuthentication
class SecureDataViewSet(ViewSet):
# Token-based authentication নিশ্চিত করতে authentication_classes সেট করা হচ্ছে
authentication_classes = [TokenAuthentication]
permission_classes = [IsAuthenticated]
def list(self, request):
# User authentication সফল হলে response প্রদান করা হবে
return Response({"message": "This is secured data accessible only to authenticated users."})
def retrieve(self, request, pk=None):
# নির্দিষ্ট একটি ডেটা retrieve করা যাবে
return Response({"message": f"Secured data item {pk} for authenticated users."})
urls.py এ ViewSet যুক্ত করা
আপনার urls.py ফাইলে ViewSet এর জন্য একটি route তৈরি করতে DefaultRouter ব্যবহার করতে পারেন:
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import SecureDataViewSet
router = DefaultRouter()
router.register(r'secure-data', SecureDataViewSet, basename='secure-data')
urlpatterns = [
path('', include(router.urls)),
]
টোকেনের মাধ্যমে API Access করা
যখন এই API endpoint এ রিকোয়েস্ট পাঠানো হবে, তখন Authorization header এর মাধ্যমে token পাঠাতে হবে:
Example Request:
GET /secure-data/
Authorization: Token your_generated_token_here
ব্যাখ্যা
authentication_classes: এখানেTokenAuthenticationব্যবহার করা হয়েছে যা Djoser এবং DRF এর token-based authentication নিশ্চিত করে।permission_classes:IsAuthenticatedpermission নিশ্চিত করে যে শুধুমাত্র authenticated users এই ViewSet এ access পাবে।- Response: যদি token বৈধ হয়, তাহলে user
HTTP 200 OKstatus এবং নির্দিষ্ট response message পাবে। যদি token অবৈধ বা অনুপস্থিত হয়, তাহলেHTTP 401 Unauthorizederror প্রদান করা হবে।
এইভাবে, আপনি একটি secure API ViewSet তৈরি করতে পারেন যা token-based authentication এর মাধ্যমে user validation নিশ্চিত করে।