CherryPy তে Authentication Management ব্যবস্থাপনা একটি গুরুত্বপূর্ণ অংশ, যেখানে অ্যাপ্লিকেশন ইউজারদের লগইন, লগআউট এবং অথেন্টিকেশন প্রক্রিয়া পরিচালনা করতে সক্ষম হয়। CherryPy এ বিভিন্ন পদ্ধতির মাধ্যমে ইউজার অথেন্টিকেশন বাস্তবায়ন করা যায়, যেমন সেশন ব্যবহার করে লগইন সিস্টেম তৈরি, কুকি ব্যবহার করে অথেন্টিকেশন নিশ্চিত করা, অথবা অন্যান্য নিরাপত্তা ফিচার যেমন HTTP Basic Authentication প্রয়োগ করা।
এখানে, আমরা CherryPy তে Authentication Management সেটআপ করার জন্য বিভিন্ন পদ্ধতি আলোচনা করব।
১. সেশন ব্যবহার করে Authentication
CherryPy তে session ব্যবহারের মাধ্যমে লগইন সিস্টেম তৈরি করা সহজ। cherrypy.session ব্যবহারের মাধ্যমে ইউজারের লগইন তথ্য সংরক্ষণ করা এবং নিরাপদভাবে অ্যাক্সেস করা সম্ভব।
উদাহরণ: সেশন ব্যবহার করে Authentication
import cherrypy
class AuthApp:
@cherrypy.expose
def index(self):
if 'logged_in' in cherrypy.session and cherrypy.session['logged_in'] == True:
return "স্বাগতম, আপনি লগইন করেছেন!"
else:
return "আপনি লগইন করেননি। <a href='/login'>লগইন করুন</a>"
@cherrypy.expose
def login(self):
return '''
<form method="post" action="/login">
ইউজারনেম: <input type="text" name="username"><br>
পাসওয়ার্ড: <input type="password" name="password"><br>
<input type="submit" value="লগইন">
</form>
'''
@cherrypy.expose
def login(self, username, password):
# ইউজারনেম এবং পাসওয়ার্ড যাচাই
if username == "admin" and password == "password123":
cherrypy.session['logged_in'] = True
return "লগইন সফল। <a href='/'>হোম পেজে ফিরে যান</a>"
else:
return "অবৈধ ইউজারনেম বা পাসওয়ার্ড। <a href='/login'>আবার চেষ্টা করুন</a>"
@cherrypy.expose
def logout(self):
cherrypy.session['logged_in'] = False
return "লগআউট সফল। <a href='/'>হোম পেজে ফিরে যান</a>"
if __name__ == '__main__':
cherrypy.quickstart(AuthApp(), '/', {'/': {'tools.sessions.on': True}})
এই উদাহরণে:
indexমেথডটি সেশনেlogged_inচেক করে ইউজারের লগইন স্ট্যাটাস দেখায়।loginমেথডে ইউজারনেম এবং পাসওয়ার্ড যাচাই করা হয়।logoutমেথডটি সেশন থেকে লগআউট করে এবং ইউজারকে হোম পেজে রিডিরেক্ট করে।
২. HTTP Basic Authentication
CherryPy তে HTTP Basic Authentication ব্যবহার করে ইউজারের অথেন্টিকেশন পরিচালনা করা যায়। এটি সার্ভার থেকে ইউজারকে অথেন্টিকেশন পপ-আপ প্রদর্শন করে, যা ইউজারের ইউজারনেম এবং পাসওয়ার্ড গ্রহণ করে।
উদাহরণ: HTTP Basic Authentication
import cherrypy
from cherrypy.lib import auth
class AuthApp:
@cherrypy.expose
@cherrypy.tools.auth_basic(realm="Private Area", check=auth.basic_check)
def index(self):
return "স্বাগতম, আপনি সফলভাবে লগইন করেছেন!"
if __name__ == '__main__':
cherrypy.quickstart(AuthApp())
এই উদাহরণে:
@cherrypy.tools.auth_basic: এই ডেকোরেটরটি HTTP Basic Authentication চালু করে, যা ইউজারকে ইউজারনেম এবং পাসওয়ার্ড দিয়ে অথেন্টিকেশন করতে বলবে।auth.basic_check: ইউজারের ইউজারনেম এবং পাসওয়ার্ড যাচাই করা হয়।
৩. কুকি ব্যবহার করে Authentication
CherryPy তে কুকি ব্যবহার করে ইউজারের লগইন তথ্য সঞ্চয় করা যায়, যাতে ইউজারের লগইন সেশন দীর্ঘ সময় পর্যন্ত সক্রিয় থাকে। কুকি ব্যবহারের মাধ্যমে আপনি ইউজারের পছন্দ এবং অথেন্টিকেশন তথ্য সঞ্চয় করতে পারেন।
উদাহরণ: কুকি ব্যবহার করে Authentication
import cherrypy
class AuthApp:
@cherrypy.expose
def index(self):
if 'username' in cherrypy.request.cookies:
return f"স্বাগতম {cherrypy.request.cookies['username']}! আপনি সফলভাবে লগইন করেছেন।"
else:
return "আপনি লগইন করেননি। <a href='/login'>লগইন করুন</a>"
@cherrypy.expose
def login(self, username, password):
# ইউজারনেম এবং পাসওয়ার্ড যাচাই
if username == "admin" and password == "password123":
cherrypy.response.cookie['username'] = username
return f"লগইন সফল। স্বাগতম {username}! <a href='/'>হোম পেজে ফিরে যান</a>"
else:
return "অবৈধ ইউজারনেম বা পাসওয়ার্ড। <a href='/login'>আবার চেষ্টা করুন</a>"
@cherrypy.expose
def logout(self):
cherrypy.response.cookie['username'] = ''
return "লগআউট সফল। <a href='/'>হোম পেজে ফিরে যান</a>"
if __name__ == '__main__':
cherrypy.quickstart(AuthApp())
এখানে:
cherrypy.response.cookie['username']: ইউজারনেম কুকি হিসেবে সেট করা হয় যখন ইউজার লগইন করে।cherrypy.request.cookies['username']: কুকি থেকে ইউজারনেম নিয়ে আসে এবং ইউজারকে স্বাগতম জানায়।
৪. Custom Authentication (কাস্টম অথেন্টিকেশন)
CherryPy তে আপনি কাস্টম অথেন্টিকেশন মেকানিজম তৈরি করতে পারেন, যেমন ডাটাবেসের মাধ্যমে ইউজারের তথ্য যাচাই করা। একটি সাধারণ কাস্টম অথেন্টিকেশন সিস্টেম তৈরি করার জন্য আপনি check ফাংশন ব্যবহার করতে পারেন, যা ইউজারের পাসওয়ার্ড যাচাই করে।
উদাহরণ: কাস্টম অথেন্টিকেশন
import cherrypy
def check_user(username, password):
# ইউজারনেম এবং পাসওয়ার্ড যাচাই
if username == "admin" and password == "password123":
return True
return False
class AuthApp:
@cherrypy.expose
def index(self):
return "স্বাগতম! আপনি সফলভাবে লগইন করেছেন।"
@cherrypy.expose
def login(self, username, password):
if check_user(username, password):
return "লগইন সফল। <a href='/'>হোম পেজে ফিরে যান</a>"
else:
return "অবৈধ ইউজারনেম বা পাসওয়ার্ড। <a href='/login'>আবার চেষ্টা করুন</a>"
if __name__ == '__main__':
cherrypy.quickstart(AuthApp())
এখানে, check_user ফাংশনটি ইউজারের ইউজারনেম এবং পাসওয়ার্ড যাচাই করে।
CherryPy তে Authentication Management অনেক সহজ এবং নমনীয়। আপনি সেশন, HTTP Basic Authentication, কুকি অথবা কাস্টম অথেন্টিকেশন পদ্ধতির মাধ্যমে নিরাপদ লগইন সিস্টেম তৈরি করতে পারেন। CherryPy তে এসব ফিচার ব্যবহারের মাধ্যমে আপনি আপনার ওয়েব অ্যাপ্লিকেশনের নিরাপত্তা নিশ্চিত করতে পারবেন।
Read more