Cookies কি এবং কিভাবে কাজ করে

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

528

Cookies হল ছোট ডাটা ফাইল যা ওয়েব সার্ভার ব্রাউজারে পাঠায় এবং ব্রাউজার সেটি ব্যবহারকারীর কম্পিউটারে সেভ করে রাখে। এগুলি পরবর্তী সময়ে সার্ভারে পাঠানো হয়, যা সার্ভারকে ব্যবহারকারীর পরিচয় অথবা পছন্দসই তথ্য সংরক্ষণ করতে সাহায্য করে। ExpressJS-এ cookies ব্যবহারের মাধ্যমে আপনি ইউজারের সেশন ম্যানেজমেন্ট, অথেনটিকেশন, এবং কাস্টম ডেটা সংরক্ষণ করতে পারবেন।


Cookies কী?

Cookie একটি ছোট তথ্য ফাইল যা একটি নির্দিষ্ট ওয়েবসাইটের সাথে সম্পর্কিত থাকে। এটি ব্রাউজারে সংরক্ষিত থাকে এবং পরবর্তীতে সেই ওয়েবসাইটে ফিরে গেলে তা সার্ভারে পাঠানো হয়। Cookies সাধারণত ব্যবহারকারীর কার্যকলাপ ট্র্যাক করার জন্য ব্যবহৃত হয়, যেমন লগ ইন তথ্য, ইউজারের পছন্দ, এবং শপিং কার্টের অবস্থা।

Cookies এর কিছু সাধারণ ব্যবহার:

  1. অথেনটিকেশন: ইউজার লগইন হওয়ার পর, তাদের টোকেন অথবা সেশন আইডি সেভ করা হয় যাতে তারা পরবর্তী সময়ে লগইন করতে না হয়।
  2. শপিং কার্ট: ই-কমার্স সাইটে ব্যবহারকারীর শপিং কার্ট সেভ করা হয় যাতে তারা সাইটে ফিরে এসে আগের পণ্য দেখতে পায়।
  3. পছন্দ সেভ করা: ইউজারের ভাষা পছন্দ বা থিম সেভ করা।

Cookies কিভাবে কাজ করে?

Cookies ব্যবহারের জন্য দুটি মূল কাজ রয়েছে:

  1. Cookies সেট করা (Setting Cookies): সার্ভার বা ওয়েবপেজ যখন প্রথম ব্যবহারকারীর ব্রাউজারে কোড পাঠায়, তখন একটি Cookie সেট করা হয়। এটি সাধারণত HTTP রেসপন্সের অংশ হিসেবে সার্ভার থেকে পাঠানো হয়।
  2. Cookies পাঠানো (Sending Cookies): যখন ব্যবহারকারী পরবর্তী বার সাইটে আসে, তখন ব্রাউজার সেই Cookie সার্ভারে পাঠায়, এবং সার্ভার সেই ডাটা ব্যবহার করে বিভিন্ন রিকোয়েস্ট প্রসেস করতে পারে।

ExpressJS-এ Cookies ব্যবহার

ExpressJS-এ cookies ব্যবহারের জন্য সাধারণত cookie-parser middleware ব্যবহার করা হয়। এটি একটি জনপ্রিয় প্যাকেজ, যা cookies পড়তে এবং সেট করতে সাহায্য করে।


১. cookie-parser ইনস্টল করা

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

npm install cookie-parser

২. ExpressJS-এ Cookies সেট করা এবং রিড করা

২.১. Cookies সেট করা

Cookies সেট করতে res.cookie() ফাংশন ব্যবহার করা হয়। এখানে আপনি cookie এর নাম, মান, এবং অন্যান্য কনফিগারেশন যেমন expires, httpOnly, ইত্যাদি নির্ধারণ করতে পারেন।

উদাহরণ:

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

// cookie-parser middleware ব্যবহার করা
app.use(cookieParser());

// একটি রাউটে cookie সেট করা
app.get('/set-cookie', (req, res) => {
  res.cookie('userName', 'JohnDoe', { maxAge: 900000, httpOnly: true });  // Cookie সেট করা হচ্ছে
  res.send('Cookie has been set');
});

app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`);
});

এখানে res.cookie() ফাংশনের মাধ্যমে userName নামে একটি cookie সেট করা হচ্ছে, যার মান "JohnDoe" এবং এটি 15 মিনিটের জন্য (900,000 মিলিসেকেন্ড) বৈধ থাকবে। httpOnly: true এর মানে হলো এই cookie শুধুমাত্র HTTP রিকোয়েস্টের মাধ্যমে অ্যাক্সেস করা যাবে, JavaScript এর মাধ্যমে নয়।

২.২. Cookies রিড করা

Cookies পড়তে req.cookies অবজেক্ট ব্যবহার করা হয়। এতে অ্যাক্সেসযোগ্য cookies গুলো এক্সপোজ করা হয়।

উদাহরণ:

app.get('/get-cookie', (req, res) => {
  const userName = req.cookies.userName;  // Cookie পড়া হচ্ছে
  if (userName) {
    res.send(`Hello, ${userName}`);
  } else {
    res.send('No user cookie found');
  }
});

এখানে, /get-cookie রাউটে পাঠানো হলে যদি userName cookie থাকে, তবে সেটি রেসপন্সে প্রদর্শিত হবে।


৩. Cookies মুছে ফেলা

Cookies মুছতে res.clearCookie() ফাংশন ব্যবহার করা হয়। এই ফাংশনটি cookie এর নাম প্রদান করে এবং এটি ব্রাউজার থেকে cookie মুছে ফেলে।

উদাহরণ:

app.get('/clear-cookie', (req, res) => {
  res.clearCookie('userName');  // userName cookie মুছে ফেলা হচ্ছে
  res.send('Cookie has been cleared');
});

এখানে userName cookie মুছে ফেলা হয়েছে এবং ব্যবহারকারীকে জানানো হয়েছে যে cookie মুছে ফেলা হয়েছে।


৪. Cookies এর অপশনসমূহ

maxAge: এই অপশনটি cookie এর জীবিত সময় নির্ধারণ করে, মিলিসেকেন্ডে। উদাহরণস্বরূপ, 15 মিনিটের জন্য cookie রাখার জন্য { maxAge: 900000 } দেওয়া হয়।

expires: এই অপশনটি cookie এর এক্সপায়ারি সময় নির্ধারণ করে, যা একটি নির্দিষ্ট Date অবজেক্ট হতে পারে। উদাহরণস্বরূপ:

res.cookie('session', 'abc123', { expires: new Date(Date.now() + 900000) });

httpOnly: এই অপশনটি cookie নিরাপদ রাখে, কারণ এটি ব্রাউজার জাভাস্ক্রিপ্ট থেকে cookie অ্যাক্সেস নিষিদ্ধ করে। এটি নিরাপত্তার জন্য অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে যখন sensitive ডাটা যেমন সেশন আইডি ব্যবহার করা হয়।

secure: এটি cookie শুধুমাত্র HTTPS কানেকশনে পাঠানোর অনুমতি দেয়, অর্থাৎ ওয়েবপেজের নিরাপত্তা নিশ্চিত করতে এটি ব্যবহার করা হয়।

sameSite: এই অপশনটি cross-site request forgery (CSRF) আক্রমণ থেকে সুরক্ষা প্রদান করে। এর তিনটি মান হতে পারে:

  • strict: cookie শুধুমাত্র যখন একই ডোমেইন থেকে রিকোয়েস্ট করা হয় তখনই পাঠানো হবে।
  • lax: কিছু cross-site রিকোয়েস্টে cookie পাঠানো হবে।
  • none: cookie সব সময় পাঠানো হবে, তবে এটি secure হওয়া দরকার।

সারাংশ

Cookies হল একটি গুরুত্বপূর্ণ উপাদান যা ওয়েব অ্যাপ্লিকেশনে ব্যবহারকারীর ডাটা সংরক্ষণ এবং ট্র্যাকিংয়ের জন্য ব্যবহৃত হয়। ExpressJS-এ cookies ব্যবহারের জন্য cookie-parser middleware ব্যবহার করা হয়। আপনি cookies সেট করতে, পড়তে এবং মুছতে পারেন সহজেই res.cookie(), req.cookies এবং res.clearCookie() ফাংশন ব্যবহার করে। এটি ব্যবহারকারীর অথেনটিকেশন, শপিং কার্ট, পছন্দসই সেটিংস ইত্যাদি সংরক্ষণ করতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...