Web2Py তে User Authentication (ইউজার অথেনটিকেশন) সিস্টেম সেটআপ করা খুবই সহজ এবং কার্যকরী। Web2Py ডিফল্টভাবে Auth নামক একটি মডিউল প্রদান করে যা ইউজার অথেনটিকেশন, অথোরাইজেশন, পাসওয়ার্ড রিসেট, ইউজার রেজিস্ট্রেশন ইত্যাদি কাজ করতে সহায়তা করে। এই মডিউলটি একটি শক্তিশালী অথেনটিকেশন সিস্টেম সরবরাহ করে এবং আপনার অ্যাপ্লিকেশনকে নিরাপদ এবং সংগঠিত রাখে।
এখানে Web2Py তে User Authentication সেটআপ করার সম্পূর্ণ প্রক্রিয়া ব্যাখ্যা করা হলো।
Web2Py তে User Authentication সেটআপ করার পদক্ষেপ
১. Auth মডিউল ইনস্টল করা
Web2Py তে Auth মডিউল ডিফল্টভাবেই অন্তর্ভুক্ত থাকে, তাই আলাদাভাবে ইনস্টল করতে হয় না। আপনাকে শুধু auth মডিউল কনফিগার করতে হবে।
২. Auth মডিউল কনফিগার করা
Web2Py-তে auth মডিউল কনফিগার করতে models ফোল্ডারের মধ্যে db.py ফাইলটি ব্যবহার করতে হয়। এখানে আপনি auth এবং db কনফিগার করবেন।
উদাহরণস্বরূপ:
# models/db.py
# ডেটাবেস সংযোগ
db = DAL('sqlite://storage.sqlite')
# auth মডিউল কনফিগার করা
auth = Auth(db)
auth.define_tables() # ইউজার, গ্রুপ, পাসওয়ার্ড রিসেট টেবিল তৈরি
এখানে auth.define_tables() ব্যবহার করা হয়েছে, যা ইউজার, গ্রুপ এবং পাসওয়ার্ড রিসেটের জন্য টেবিল তৈরি করবে। এটি ইউজার অথেনটিকেশন সিস্টেমের জন্য প্রয়োজনীয় টেবিলগুলোর ডিফল্ট কনফিগারেশন।
৩. Auth মডিউল এর অন্যান্য ফিচার কনফিগার করা
আপনি প্রয়োজন অনুযায়ী Auth মডিউল কনফিগার করতে পারেন। যেমন ইউজার রেজিস্ট্রেশন বা লগইন প্রক্রিয়া কাস্টমাইজ করা।
# models/db.py
auth.settings.registration_requires_approval = False # ইউজার রেজিস্ট্রেশন অনুমোদন ছাড়া হবে
auth.settings.reset_password_required = True # পাসওয়ার্ড রিসেট করার জন্য অনুমতি চাওয়া হবে
এই কোডটি ইউজার রেজিস্ট্রেশনকে অনুমোদন ছাড়াই গ্রহণ করবে এবং পাসওয়ার্ড রিসেটের জন্য ইউজার থেকে অনুমতি নেবে।
৪. Authentication Forms তৈরি করা
Web2Py তে auth মডিউল দিয়ে ইউজার লগইন, রেজিস্ট্রেশন এবং পাসওয়ার্ড রিসেট ফর্ম তৈরি করা যায়। উদাহরণস্বরূপ:
ইউজার রেজিস্ট্রেশন ফর্ম:
# controllers/default.py
def register():
form = auth.register() # ইউজার রেজিস্ট্রেশন ফর্ম তৈরি
return dict(form=form)
ইউজার লগইন ফর্ম:
# controllers/default.py
def login():
form = auth.login() # ইউজার লগইন ফর্ম তৈরি
return dict(form=form)
পাসওয়ার্ড রিসেট ফর্ম:
# controllers/default.py
def reset_password():
form = auth.request_reset_password() # পাসওয়ার্ড রিসেট ফর্ম তৈরি
return dict(form=form)
৫. ইউজারের প্রোফাইল ফর্ম
Web2Py তে ইউজার প্রোফাইল ফর্মটি ডিফল্টভাবেই পাওয়া যায়। আপনি চাইলে ইউজারের প্রোফাইল অ্যাক্সেস এবং আপডেট করতে পারেন।
# controllers/default.py
def profile():
form = auth.profile() # ইউজারের প্রোফাইল দেখানো এবং আপডেট ফর্ম
return dict(form=form)
এখানে auth.profile() ফাংশনটি ইউজারের প্রোফাইল ফর্মটি তৈরি করে এবং ইউজারের তথ্য প্রদর্শন ও আপডেট করার সুবিধা দেয়।
৬. ইউজারের অথোরাইজেশন
আপনি Web2Py তে ইউজার অথোরাইজেশন কনফিগার করতে পারেন, যাতে কিছু অ্যাকশন শুধুমাত্র লগইন করা ইউজারদের জন্য উপলব্ধ থাকে।
# controllers/default.py
@auth.requires_login() # এই ফাংশনটি শুধু লগইন করা ইউজারের জন্য
def my_dashboard():
return dict(message="Welcome to your dashboard!")
এখানে @auth.requires_login() ডেকোরেটরটি ব্যবহার করা হয়েছে, যার মাধ্যমে শুধুমাত্র লগইন করা ইউজাররা এই পৃষ্ঠায় অ্যাক্সেস পাবে।
৭. ডিফল্ট পৃষ্ঠাগুলির ব্যবহার
Web2Py ডিফল্টভাবে কিছু পৃষ্ঠা তৈরি করে যা ইউজার অথেনটিকেশন এবং অথোরাইজেশন হ্যান্ডল করতে সহায়তা করে:
- Login Page:
/user/login - Register Page:
/user/register - Profile Page:
/user/profile
এগুলি স্বয়ংক্রিয়ভাবে তৈরি হয়ে যায় এবং ইউজার লগইন, রেজিস্ট্রেশন, প্রোফাইল আপডেট ইত্যাদি পরিচালনা করতে সহায়তা করে।
সারাংশ
Web2Py তে User Authentication সেটআপ করা একটি সহজ প্রক্রিয়া। auth মডিউলটি ব্যবহার করে আপনি ইউজার লগইন, রেজিস্ট্রেশন, প্রোফাইল ম্যানেজমেন্ট এবং পাসওয়ার্ড রিসেট করার ফিচার সহজেই অ্যাপ্লিকেশনে যুক্ত করতে পারেন। auth.define_tables() ফাংশনটি ডিফল্টভাবে ইউজার, গ্রুপ এবং পাসওয়ার্ড রিসেট টেবিল তৈরি করে এবং বিভিন্ন কনফিগারেশন সেটিংসের মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনটির নিরাপত্তা বাড়াতে পারেন।
Read more