ExpressJS-এ Cookies ব্যবহৃত হয় ব্যবহারকারীর ডেটা সংরক্ষণ এবং ব্যবহারের জন্য। Cookies সাধারণত ব্যবহারকারী সম্পর্কে কিছু মৌলিক তথ্য যেমন লগিন স্ট্যাটাস, ইউজার প্রেফারেন্স, ট্র্যাকিং ডেটা ইত্যাদি সঞ্চিত রাখে। ExpressJS-এ cookies ব্যবস্থাপনা করার জন্য cookie-parser নামক একটি জনপ্রিয় Middleware ব্যবহার করা হয়।
Cookies কি?
Cookies হল ছোট তথ্যের টুকরা যা ওয়েব ব্রাউজার এবং সার্ভার এর মধ্যে আদান-প্রদান হয়। এগুলি ব্যবহারকারী সম্পর্কে কিছু তথ্য সংরক্ষণ করে, যেমন:
- লগইন তথ্য
- ভাষা পছন্দ
- ট্র্যাকিং তথ্য
- সেশন আইডি
ExpressJS-এ, cookies সাধারণত HTTP রেসপন্সে সেট করা হয় এবং HTTP রিকোয়েস্টে পাঠানো হয়।
১. ExpressJS এ Cookies সেট করা
ExpressJS-এ cookies সেট করার জন্য res.cookie() মেথড ব্যবহার করা হয়। এর মাধ্যমে আপনি কুকির নাম, মান, এবং অন্যান্য পছন্দসই অপশন নির্ধারণ করতে পারেন (যেমন এক্সপিরেশন টাইম, ডোমেন, সিকিউরিটি প্রোটোকল ইত্যাদি)।
১.১. উদাহরণ
const express = require('express');
const app = express();
// Cookie সেট করার উদাহরণ
app.get('/set-cookie', (req, res) => {
res.cookie('user', 'JohnDoe', { maxAge: 900000, httpOnly: true });
res.send('Cookie has been set!');
});
app.listen(3000, () => {
console.log('Server running at http://localhost:3000');
});
কোড ব্যাখ্যা:
res.cookie('user', 'JohnDoe'): এখানেuserকুকির নাম এবং'JohnDoe'হল এর মান।maxAge: 900000: কুকির মেয়াদ (যা 900000 মিলিসেকেন্ড বা 15 মিনিট নির্ধারণ করে)।httpOnly: true: কুকিটিকে শুধুমাত্র HTTP রিকোয়েস্টের মাধ্যমে অ্যাক্সেসযোগ্য করে তোলে, যা ক্লায়েন্ট সাইড স্ক্রিপ্ট থেকে এটি অ্যাক্সেস হতে দেয় না।
২. ExpressJS এ Cookies পড়া
ExpressJS-এ কুকি পড়ার জন্য req.cookies অবজেক্ট ব্যবহার করা হয়, যা রিকোয়েস্টে পাঠানো কুকির মান অ্যাক্সেস করতে সাহায্য করে। কুকি ব্যবহারের জন্য cookie-parser মিডলওয়্যারটি ইনস্টল এবং কনফিগার করতে হয়।
২.১. cookie-parser ইনস্টলেশন
npm install cookie-parser
২.২. Cookie-parser মিডলওয়্যার ব্যবহার
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
// cookie-parser মিডলওয়্যার যোগ করা
app.use(cookieParser());
// Cookie পড়ার উদাহরণ
app.get('/get-cookie', (req, res) => {
const user = req.cookies.user; // 'user' কুকি পড়া
if (user) {
res.send(`Hello ${user}!`);
} else {
res.send('No user cookie found!');
}
});
app.listen(3000, () => {
console.log('Server running at http://localhost:3000');
});
কোড ব্যাখ্যা:
cookieParser():cookie-parserমিডলওয়্যার রিকোয়েস্টের কুকি গুলোকেreq.cookiesঅবজেক্টে ধারণ করে।req.cookies.user: এখানে কুকির মানuserনামক কুকি থেকে পড়া হচ্ছে।
৩. Cookies এর অতিরিক্ত অপশনসমূহ
Cookies-এ কিছু অতিরিক্ত অপশন ব্যবহার করা যায়, যেমন:
maxAge: কুকির মেয়াদ সময় নির্ধারণ করে (মিলিসেকেন্ডে)।expires: কুকির মেয়াদ নির্ধারণের জন্য একটি নির্দিষ্ট তারিখ।secure: কুকি শুধুমাত্র HTTPS প্রোটোকলের মাধ্যমে পাঠানো হবে।httpOnly: কুকি শুধুমাত্র HTTP রিকোয়েস্টের মাধ্যমে অ্যাক্সেসযোগ্য থাকবে, JavaScript এর মাধ্যমে নয়।sameSite: কুকির ক্রস-সাইট রিকোয়েস্ট সীমাবদ্ধ করার জন্য ব্যবহৃত হয়। এর মান হতে পারে'strict','lax', বা'none'।
৩.১. উদাহরণ
app.get('/set-secure-cookie', (req, res) => {
res.cookie('sessionId', '123456', {
maxAge: 3600000, // 1 ঘণ্টা
secure: true, // HTTPS-এ কেবল পাঠানো হবে
httpOnly: true, // শুধুমাত্র HTTP থেকে অ্যাক্সেসযোগ্য
sameSite: 'strict' // ক্রস-সাইট রিকোয়েস্ট ব্লক করা হবে
});
res.send('Secure cookie has been set!');
});
৪. Cookies মুছে ফেলা
Cookies মুছে ফেলতে res.clearCookie() মেথড ব্যবহার করা হয়। এটি কেবল কুকির মান মুছে দেয়, কিন্তু কুকির সাথে সম্পর্কিত ডেটাও মুছে দেয়।
৪.১. উদাহরণ
app.get('/clear-cookie', (req, res) => {
res.clearCookie('user');
res.send('User cookie has been cleared!');
});
এখানে, res.clearCookie('user') কুকি 'user' মুছে ফেলবে।
সারাংশ
ExpressJS-এ Cookies ব্যবহার করে আপনি ব্যবহারকারীর ডেটা সংরক্ষণ এবং পড়ার কাজটি খুব সহজেই করতে পারেন। কুকি সেট করা, কুকি পড়া এবং কুকি মুছে ফেলার জন্য ExpressJS একটি সোজাসাপ্টা API প্রদান করে। কুকি ব্যবস্থাপনা করতে cookie-parser মিডলওয়্যারটি ইনস্টল করে ব্যবহার করতে হয়। আপনি কুকির মেয়াদ, সিকিউরিটি অপশন এবং অন্যান্য পছন্দসই ফিচার যুক্ত করে কুকি ব্যবস্থাপনা করতে পারেন।
Read more