Login, Logout, এবং Password Management

Django এর Authentication এবং Authorization - জ্যাঙ্গো (Django) - Web Development

371

Django তে Login, Logout, এবং Password Management খুবই গুরুত্বপূর্ণ অংশ, বিশেষ করে যখন আপনি ব্যবহারকারীদের জন্য নিরাপত্তা এবং অ্যাক্সেস কন্ট্রোল ম্যানেজ করতে চান। Django এ প্রি-বিল্ট ফিচার রয়েছে যা সহজে এসব কার্যক্রম পরিচালনা করতে সাহায্য করে। এই ফিচারগুলো ব্যবহার করে আপনি নিরাপদ লগিন, লগআউট এবং পাসওয়ার্ড পরিবর্তন করতে পারবেন।


Login, Logout, এবং Password Management: Overview

Django-তে authentication এবং authorization এর জন্য বিল্ট-ইন সিস্টেম রয়েছে। এর মাধ্যমে আপনি ব্যবহারকারীদের লগিন, লগআউট, এবং পাসওয়ার্ড ম্যানেজমেন্ট সিস্টেম তৈরি করতে পারেন। এই সিস্টেমটি Django’s auth app এর অংশ হিসেবে কাজ করে।


Login in Django

Django তে লগিন করার জন্য LoginView ক্লাস ব্যবহার করা হয়। এটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড যাচাই করে এবং সফল হলে ব্যবহারকারীকে ড্যাশবোর্ড বা অন্য কোনো পেজে রিডাইরেক্ট করে।

১. LoginView ব্যবহার

Django তে লগিন করার জন্য একটি LoginView তৈরি করা খুবই সহজ। আপনি django.contrib.auth.views.LoginView ব্যবহার করতে পারেন। এই ভিউটি স্বয়ংক্রিয়ভাবে লগিন ফর্ম এবং প্রসেসিং এর কাজ করে।

URL কনফিগারেশন:

# urls.py
from django.urls import path
from django.contrib.auth.views import LoginView

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

২. Custom Login Template

ডিফল্টভাবে Django একটি login.html টেমপ্লেট ফাইল ব্যবহার করে, তবে আপনি এটি কাস্টমাইজ করতে পারেন। এর জন্য, আপনাকে LOGIN_REDIRECT_URL সেট করতে হবে যাতে লগিন সফল হলে ব্যবহারকারী কোথায় রিডাইরেক্ট হবে।

# settings.py
LOGIN_REDIRECT_URL = '/'

আপনি কাস্টম টেমপ্লেট তৈরি করতে পারেন:

<!-- login.html -->
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Login</button>
</form>

Logout in Django

ব্যবহারকারীকে লগ আউট করার জন্য Django তে LogoutView ক্লাস ব্যবহার করা হয়। এটি স্বয়ংক্রিয়ভাবে সেশন শেষ করে ব্যবহারকারীকে লগ আউট করে দেয়।

১. LogoutView ব্যবহার

# urls.py
from django.contrib.auth.views import LogoutView

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

এটি স্বয়ংক্রিয়ভাবে লগআউট করার পর ব্যবহারকারীকে লগআউট পেজে রিডাইরেক্ট করে।


Password Management

Django তে পাসওয়ার্ড ম্যানেজমেন্টের জন্য কিছু শক্তিশালী বিল্ট-ইন ফিচার রয়েছে। এটি ব্যবহারকারীদের পাসওয়ার্ড পরিবর্তন এবং রিসেট করার সুবিধা দেয়। আপনি Password Change এবং Password Reset এর জন্য দুটি ভিউ ব্যবহার করতে পারেন: PasswordChangeView এবং PasswordResetView

১. Password Change

ব্যবহারকারীদের পাসওয়ার্ড পরিবর্তন করতে Django এর PasswordChangeView ব্যবহার করা হয়। এটি স্বয়ংক্রিয়ভাবে পাসওয়ার্ড পরিবর্তন ফর্ম সরবরাহ করে এবং সফল হলে ব্যবহারকারীকে একটি নির্দিষ্ট পেজে রিডাইরেক্ট করে।

URL কনফিগারেশন:

# urls.py
from django.contrib.auth.views import PasswordChangeView, PasswordChangeDoneView

urlpatterns = [
    path('password_change/', PasswordChangeView.as_view(), name='password_change'),
    path('password_change/done/', PasswordChangeDoneView.as_view(), name='password_change_done'),
]

এখানে:

  • PasswordChangeView: ব্যবহারকারীকে পাসওয়ার্ড পরিবর্তনের ফর্ম দেখাবে।
  • PasswordChangeDoneView: পাসওয়ার্ড পরিবর্তন সফল হলে একটি কনফার্মেশন পেজ দেখাবে।

২. Password Reset

যদি ব্যবহারকারী তার পাসওয়ার্ড ভুলে যায়, তবে PasswordResetView ব্যবহার করে পাসওয়ার্ড রিসেট করার প্রক্রিয়া শুরু করা যায়। এটি একটি ফর্ম সরবরাহ করে যেখানে ব্যবহারকারী তার ইমেইল ঠিকানা প্রদান করতে পারে, এবং তারপর Django একটি পাসওয়ার্ড রিসেট লিংক তার ইমেইলে পাঠাবে।

URL কনফিগারেশন:

# urls.py
from django.contrib.auth.views import PasswordResetView, PasswordResetDoneView, PasswordResetConfirmView, PasswordResetCompleteView

urlpatterns = [
    path('password_reset/', PasswordResetView.as_view(), name='password_reset'),
    path('password_reset/done/', PasswordResetDoneView.as_view(), name='password_reset_done'),
    path('reset/<uidb64>/<token>/', PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
    path('reset/done/', PasswordResetCompleteView.as_view(), name='password_reset_complete'),
]

এখানে:

  • PasswordResetView: ইমেইল ইনপুট ফর্ম প্রদর্শন করে।
  • PasswordResetDoneView: পাসওয়ার্ড রিসেট লিংক পাঠানোর পর কনফার্মেশন পেজ দেখায়।
  • PasswordResetConfirmView: পাসওয়ার্ড রিসেট করার জন্য নতুন পাসওয়ার্ড সেট করার ফর্ম দেখায়।
  • PasswordResetCompleteView: পাসওয়ার্ড রিসেট সফল হলে একটি কনফার্মেশন পেজ প্রদর্শন করে।

৩. Custom Password Reset Email

আপনি Django এর PasswordResetView এর মাধ্যমে পাঠানো ইমেইল কাস্টমাইজ করতে পারেন। এর জন্য আপনাকে ইমেইল টেমপ্লেট তৈরি করতে হবে।

<!-- password_reset_email.html -->
{% block content %}
    <p>Hello {{ user.username }},</p>
    <p>You requested a password reset. Click the link below to reset your password:</p>
    <p><a href="{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}">Reset your password</a></p>
{% endblock %}

এটি ইমেইল শরীরের কাস্টম টেমপ্লেট যা রিসেট লিংক অন্তর্ভুক্ত করবে।


Django-তে Login, Logout, এবং Password Management সেটআপ করা খুবই সহজ এবং নিরাপদ। Django এর বিল্ট-ইন ভিউ এবং টেমপ্লেট ব্যবহার করে আপনি দ্রুত নিরাপদ লগিন সিস্টেম এবং পাসওয়ার্ড ম্যানেজমেন্ট সিস্টেম তৈরি করতে পারেন। আপনি যদি কাস্টমাইজেশন চান, তাহলে Django আপনাকে সেই সুযোগও প্রদান করে, যাতে আপনি আপনার অ্যাপ্লিকেশন অনুযায়ী প্রয়োজনীয় পরিবর্তন করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...