ব্লগ তৈরী পর্ব – ১৯: লগইন লগআউট

আজকের পর্বে আমরা লগইন লগআউট নিয়ে আলোচনা করবো।
লগইন লগআউট এর জন্য জ্যাংগো এর নিজস্ব বেশ কিছু পদ্ধতি আছে। আমরা এখানে বিল্ট ইন পদ্ধতি ব্যবহার না করে আমাদের মতো কাস্টম পদ্ধতি ব্যবহার করবো।
এ জন্য প্রথমে আমরা যা করবো, ব্লগ app এর views.py এ নিচের কোড গুলো লিখে ফেলি।

django_project/blog/views.py:

login function এর ভিতরে

এটা দিলাম এই জন্য যে কোনো ইউসার যদি লগইন অবস্থায় পুনরায় লগইন ইন ফর্ম এ যায় তখন তাকে লগইন ফর্ম না দেখায়ে সরাসরি অ্যাডমিন পেজ এ নিয়ে যাবে।

এরপরে আমরা চেক করলাম যে ইউসার নাম এবং পাসওয়ার্ড দিয়ে লগইন করতে চাচ্ছি সেটা ভ্যালিড কিনা। এই জন্য আমরা auth.authenticate() ব্যবহার করেছি। auth.authenticate() হলো জ্যাংগো এর একটা function , যেটা কিনা ২ টা প্যারামিটার নেয়। একটা হলো username আর অপরটা password এবং চেক করে যে username এবং password ভ্যালিড কিনা। যদি ভ্যালিড হয় তাহলে True রিটার্ন করে ,অন্যথায় None রিটার্ন করে।

যদি ভ্যালিড হয় হয় তাহলে লগইন হবে। লগইন করার জন্য আমরা login() function ব্যবহার করেছি। এটাও ২ টা প্যারামিটার নেয়। একটা হল request object অপরটা হলো User object .

এখন আমরা আমাদের login.html, logout.html and admin_page.html তৈরী করবো।

django_project/blog/templates/blog/login.html:

django_project/blog/templates/blog/logout.html:

django_project/cadmin/templates/cadmin/admin_page.html:

django_project/blog/urls.py:

এখন আমরা যদি http://127.0.0.1:8000/login/ এ যাই তাহলে এরকম একটা ভিউ দেখতে পাবো।

লগইন করলে নিচের মতো করে অ্যাডমিন পেজ দেখতে পাবো।

এখন আমরা আমাদের loggedin উজার এর ইনফরমেশন দেখার জন্য একটা অপসন রাখবো account info নামে ,যেখানে গেলে পরে উজার এর সকল ইনফরমেশন দেখা যাবে।
django_project/cadmin/templates/cadmin/account_info.html :

django_project/cadmin/views.py:

django_project/cadmin/urls.py:

logout করার জন্য logout এ ক্লিক করলে logout হয়ে যাবে।

এখন logout করার পরে http://127.0.0.1:8000/cadmin/account/info লিংক এ যান। দেখবেন হয়ত বা User কোনো ইনফরমেশন পাওয়া যাচ্ছেনা কিন্তু অ্যাডমিন পেজ এ যাওয়া যাচ্ছে।
যেই কারনে আমরা লগইন logout করলাম সেই সমস্যা তো থেকেই গেলো।
আমরা এখন যেটা করবো যে কোনো User লগইন না করে যদি অ্যাডমিন পেজে যেতে চায় তাহলে তাকে সরাসরি লগইন পেজ এ নিয়ে যাবে। এই জন্য আমরা যেই ফাঙ্কশন গুলোকে restricted করে দিতে চাই তার আগে @login_required(login_url=’blog_login’) দিয়ে দিলে ই কাজ হয়ে যাবে।

এখন logout করা অবস্থায় যদি কেউ ইউসার ইনফরমেশন এর http://127.0.0.1:8000/cadmin/account/info লিংক এ যেতে যায় তাহলে সরাসরি লগইন পেজে নিয়ে যাবে।

“ব্লগ পোস্টের ব্যাপারে আপনার যে কোনো মতামত কমেন্টে জানাতে পারেন। ভুল ত্রুটি পেলে সংশোধন করে দিলে চির কৃতজ্ঞ থাকিব “

2 thoughts on “ব্লগ তৈরী পর্ব – ১৯: লগইন লগআউট”

Leave a Comment

Your email address will not be published. Required fields are marked *