CherryPy এর Authentication Management

Authentication এবং Authorization - চেরিপাই (CherryPy) - Web Development

239

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 তে এসব ফিচার ব্যবহারের মাধ্যমে আপনি আপনার ওয়েব অ্যাপ্লিকেশনের নিরাপত্তা নিশ্চিত করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...