Django में उपयोगकर्ता प्रमाणीकरण और प्राधिकरण को लागू करना

उपयोगकर्ता प्रमाणीकरण सुनिश्चित करता है कि उपयोगकर्ता सुरक्षित रूप से लॉग इन कर सकते हैं और अपने खातों तक पहुँच सकते हैं। दूसरी ओर, प्राधिकरण यह निर्धारित करता है कि प्रमाणित उपयोगकर्ताओं को कौन सी क्रियाएँ करने की अनुमति है। Django एक मजबूत प्रमाणीकरण प्रणाली प्रदान करता है जिसे इन उद्देश्यों के लिए एकीकृत और विस्तारित करना आसान है।

डिफ़ॉल्ट प्रमाणीकरण प्रणाली सेट अप करना

Django का डिफ़ॉल्ट प्रमाणीकरण सिस्टम डिफ़ॉल्ट रूप से इसके कॉन्फ़िगरेशन में शामिल है। सुनिश्चित करें कि आपके settings.py के INSTALLED_APPS अनुभाग में निम्नलिखित ऐप्स सूचीबद्ध हैं:

'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

आवश्यक तालिकाएँ सेट करने के लिए डेटाबेस को माइग्रेट करें:

python manage.py migrate

उपयोगकर्ता मॉडल बनाना

Django एक अंतर्निहित उपयोगकर्ता मॉडल प्रदान करता है, लेकिन यदि आवश्यक हो तो आप एक कस्टम मॉडल बना सकते हैं। डिफ़ॉल्ट मॉडल का उपयोग करने के लिए:

from django.contrib.auth.models import User

# Creating a new user
user = User.objects.create_user(username='johndoe', password='securepassword')
user.email = 'johndoe@example.com'
user.save()

कस्टम उपयोगकर्ता मॉडल बनाने के लिए, अपने models.py को संशोधित करें:

from django.contrib.auth.models import AbstractUser
from django.db import models

class CustomUser(AbstractUser):
    phone_number = models.CharField(max_length=15, blank=True, null=True)

settings.py में AUTH_USER_MODEL सेटिंग अपडेट करें:

AUTH_USER_MODEL = 'yourapp.CustomUser'

उपयोगकर्ता लॉगिन और लॉगआउट को संभालना

Django लॉगिन और लॉगआउट के लिए बिल्ट-इन दृश्य प्रदान करता है। अपने urls.py में निम्न URL जोड़ें:

from django.urls import path
from django.contrib.auth import views as auth_views

urlpatterns = [
    path('login/', auth_views.LoginView.as_view(), name='login'),
    path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]

registration/login.html नामक एक सरल लॉगिन टेम्प्लेट बनाएं:

<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Log in</button>
</form>

अनुमतियों के साथ पहुंच प्रतिबंधित करना

Django पहुँच को प्रतिबंधित करने के लिए अनुमति वर्ग प्रदान करता है। दृश्यों में उनका उपयोग करने के लिए:

from django.contrib.auth.decorators import login_required, permission_required

@login_required
def dashboard(request):
    return render(request, 'dashboard.html')

@permission_required('yourapp.can_edit')
def edit_page(request):
    return render(request, 'edit_page.html')

अनुमतियाँ Django एडमिन या शेल के माध्यम से प्रदान की जा सकती हैं:

from django.contrib.auth.models import User, Permission

user = User.objects.get(username='johndoe')
permission = Permission.objects.get(codename='can_edit')
user.user_permissions.add(permission)

निष्कर्ष

Django की प्रमाणीकरण और प्राधिकरण प्रणाली आपके वेब अनुप्रयोगों को सुरक्षित करने के लिए एक ठोस आधार प्रदान करती है। यह अत्यधिक अनुकूलन योग्य है, जिससे आप विशिष्ट आवश्यकताओं को पूरा करने के लिए इसकी कार्यक्षमता का विस्तार कर सकते हैं। इस प्रणाली के साथ, आप अपनी परियोजनाओं में उपयोगकर्ता खातों, भूमिकाओं और अनुमतियों को आसानी से प्रबंधित कर सकते हैं।

लिंक
Python