Session এবং Cookies ব্যবস্থাপনা - এক্সপ্রেসজেএস (ExpressJS) - Web Development

234

ExpressJS অ্যাপ্লিকেশন তৈরি করার সময় ব্যবহারকারীদের সেশনের তথ্য সংরক্ষণ এবং কুকি ম্যানেজমেন্ট করার জন্য Cookie Parser এবং Session Middleware অত্যন্ত গুরুত্বপূর্ণ টুলস। এই টুলগুলোর মাধ্যমে আপনি ব্যবহারকারীর ডেটা সঠিকভাবে ট্র্যাক করতে, অথেনটিকেশন পরিচালনা করতে এবং ওয়েব অ্যাপ্লিকেশনকে আরও ইন্টারঅ্যাকটিভ করতে পারেন।


১. Cookie Parser Middleware

Cookie Parser middleware একটি ExpressJS middleware যা HTTP রিকোয়েস্টের কুকি (cookies) পার্স করে এবং এগুলোকে সহজভাবে ব্যবহারযোগ্য ফরম্যাটে req.cookies অবজেক্টে সরবরাহ করে। এই middleware এর মাধ্যমে আপনি ব্রাউজারে সেভ করা কুকি থেকে ডেটা এক্সেস করতে পারেন।

১.১. Cookie Parser ইন্সটল করা

প্রথমে, আপনাকে cookie-parser প্যাকেজটি ইনস্টল করতে হবে:

npm install cookie-parser

১.২. Express অ্যাপে Cookie Parser ব্যবহার করা

এবার, আপনার Express অ্যাপে Cookie Parser middleware ব্যবহার করুন:

const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();

// Cookie Parser middleware ব্যবহার করা
app.use(cookieParser());

// রাউট তৈরি
app.get('/', (req, res) => {
  res.send('Hello, world!');
});

// কুকি সেট করা
app.get('/setcookie', (req, res) => {
  res.cookie('username', 'John Doe', { httpOnly: true, secure: false }); // কুকি সেট করা
  res.send('Cookie has been set!');
});

// কুকি পড়া
app.get('/getcookie', (req, res) => {
  const username = req.cookies['username']; // কুকি থেকে ডেটা পড়া
  res.send(`Cookie value: ${username}`);
});

app.listen(3000, () => {
  console.log('Server is running on http://localhost:3000');
});

এখানে:

  • cookieParser() middleware রিকোয়েস্টে উপস্থিত কুকি গুলো পার্স করে এবং req.cookies অবজেক্টে রাখে।
  • res.cookie() ফাংশন কুকি সেট করার জন্য ব্যবহৃত হয়। এখানে কুকির নাম 'username' এবং মান 'John Doe' দেওয়া হয়েছে।
  • /getcookie রাউটে কুকি থেকে ডেটা পড়ে এবং সেটি ক্লায়েন্টকে রেসপন্স হিসেবে পাঠানো হচ্ছে।

১.৩. কুকির বিভিন্ন অপশন

  • httpOnly: true — এই অপশনটি কুকিকে জাভাস্ক্রিপ্টের মাধ্যমে অ্যাক্সেস করা থেকে রক্ষা করে।
  • secure: true — কুকি শুধুমাত্র HTTPS রিকোয়েস্টের মাধ্যমে পাঠানো হবে।
  • expires — কুকির মেয়াদ নির্ধারণ করা যায়।

২. Session Middleware

Session middleware ব্যবহারকারীদের সেশন (ব্যক্তিগত সঞ্চিত ডেটা) সংরক্ষণ এবং পরিচালনা করতে সাহায্য করে। এটি সাধারণত অ্যাপ্লিকেশনের মধ্যে স্টেট হ্যান্ডলিংয়ের জন্য ব্যবহৃত হয়, যেমন: ইউজার লগইন তথ্য, শপিং কার্ট ডেটা, বা অন্যান্য প্রকারের সাময়িক তথ্য।

ExpressJS-এ সেশন ব্যবস্থাপনা করতে express-session প্যাকেজ ব্যবহার করা হয়।

২.১. express-session ইনস্টল করা

npm install express-session

২.২. Express অ্যাপে Session Middleware ব্যবহার করা

const express = require('express');
const session = require('express-session');
const app = express();

// Session middleware ব্যবহার করা
app.use(session({
  secret: 'your-secret-key',  // সেশন এনক্রিপশন জন্য সিক্রেট কী
  resave: false,              // সেশন আবার রিসেভ হবে না
  saveUninitialized: true,    // সেশন শুরু হলে সেভ হবে
  cookie: { secure: false }   // secure সেটিং ব্রাউজারের উপর নির্ভর করে
}));

// রাউট তৈরি
app.get('/', (req, res) => {
  res.send('Welcome to the home page!');
});

// সেশন সেট করা
app.get('/login', (req, res) => {
  req.session.user = 'John Doe';  // সেশনে ইউজারের নাম সংরক্ষণ
  res.send('User logged in!');
});

// সেশন ডেটা পড়া
app.get('/dashboard', (req, res) => {
  if (req.session.user) {
    res.send(`Welcome, ${req.session.user}!`);
  } else {
    res.send('Please log in.');
  }
});

// সেশন মুছে ফেলা
app.get('/logout', (req, res) => {
  req.session.destroy((err) => {  // সেশন ডেস্ট্রয় করা
    if (err) {
      return res.send('Error logging out');
    }
    res.send('Logged out successfully');
  });
});

app.listen(3000, () => {
  console.log('Server is running on http://localhost:3000');
});

এখানে:

  • session() middleware সেশন ম্যানেজমেন্টের জন্য ব্যবহার করা হচ্ছে।
  • সেশনের জন্য secret (এনক্রিপশন কিপ কুকির জন্য) ব্যবহার করা হয়।
  • /login রাউটে সেশনে user তথ্য সেভ করা হচ্ছে এবং /dashboard রাউটে সেশন থেকে ডেটা রিট্রিভ করা হচ্ছে।
  • /logout রাউটে সেশন ডেস্ট্রয় করা হচ্ছে।

২.৩. সেশন কুকি অপশন

  • secret: সেশন কুকি এনক্রিপ্ট করার জন্য একটি সিক্রেট কী।
  • resave: এই অপশনটি নিশ্চিত করে যে সেশনকে আবার রিসেভ করা হবে না যদি সেখানে কোনো পরিবর্তন না হয়।
  • saveUninitialized: সেশন অবজেক্টকে সেভ করে যদি এটি পুরোপুরি নতুন হয়।
  • cookie: এখানে secure: true সেট করলে কুকি কেবল HTTPS কনেকশনে পাঠানো হবে।

৩. Cookie এবং Session এর মধ্যে পার্থক্য

বৈশিষ্ট্যCookieSession
ব্যবহারব্রাউজারে ছোট ডেটা সংরক্ষণ করা হয়সার্ভারে ডেটা সংরক্ষণ করা হয়
স্টোরেজকুকি ব্যবহারকারীর ব্রাউজারে স্টোর হয়সেশন ডেটা সার্ভারে স্টোর হয়
মেয়াদকুকির মেয়াদ শেষ হলে কুকি অটোমেটিকালি মুছে যায়সেশন সাধারণত এক সেশন শেষে বা লগ আউট হওয়ার পর মুছে যায়
ডেটার পরিমাণকুকিতে কম পরিমাণ ডেটা রাখা যায়সেশন একাধিক ডেটা ধারণ করতে পারে
সিকিউরিটিকুকির মাধ্যমে ডেটা ব্রাউজারে স্টোর হওয়ায়, সিকিউরিটি ঝুঁকি থাকেসেশন সার্ভারে থাকে, তাই বেশি সিকিউরিটি নিশ্চিত হয়

সারাংশ

Cookie Parser এবং Session Middleware ExpressJS অ্যাপে ডেটা ম্যানেজমেন্ট এবং ব্যবহারকারীর সেশন ট্র্যাক করার জন্য খুবই গুরুত্বপূর্ণ। cookie-parser middleware ব্যবহারকারীর কুকি গুলো পার্স করে এবং express-session middleware ব্যবহারকারীর সেশন সংরক্ষণ ও পরিচালনা করে। কুকি সাধারণত ছোট আকারের ডেটা সংরক্ষণে ব্যবহৃত হয়, যেখানে সেশন দীর্ঘস্থায়ী এবং বৃহৎ ডেটা ম্যানেজমেন্টের জন্য ব্যবহৃত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...