Role-Based Access Control (Admin/User)
Role-Based Access Control (RBAC) – Express.js
Role-Based Access Control (RBAC) ব্যবহার করে আপনি নির্ধারণ করতে পারবেন কোন user কোন resource বা route access করতে পারবে — যেমন Admin এবং User।
📌 RBAC কী?
RBAC হলো একটি security model যেখানে user-কে সরাসরি permission না দিয়ে তার role অনুযায়ী access দেওয়া হয়। উদাহরণ: Admin সবকিছু manage করতে পারবে, কিন্তু User শুধুমাত্র নিজের data দেখতে পারবে।
🔐 Security
Unauthorized access বন্ধ করে system কে সুরক্ষিত রাখে।
⚙️ Scalability
নতুন role বা permission সহজেই যোগ করা যায়।
🧠 Clean Logic
Code বেশি readable এবং maintainable হয়।
🧩 Role Structure (Example)
User:
- View profile
- Update own data
Admin:
- Manage users
- Delete users
- Access dashboard
🛡️ RBAC Middleware ধারণা
Express.js-এ middleware ব্যবহার করে route-level security implement করা হয়।
function checkRole(role) {
return function (req, res, next) {
if (req.user.role === role) {
next();
} else {
res.status(403).json({ message: 'Access Denied' });
}
};
}
👤 User Route
app.get('/profile',
authenticateUser,
checkRole('user'),
(req, res) => {
res.send('User Profile');
}
);
👑 Admin Route
app.get('/admin/dashboard',
authenticateUser,
checkRole('admin'),
(req, res) => {
res.send('Admin Dashboard');
}
);
🔑 JWT এর সাথে RBAC
সাধারণত JWT token-এর ভিতরে user role রাখা হয় এবং middleware থেকে তা verify করা হয়।
const payload = {
id: user.id,
role: user.role
};
🌍 Real-Life Example
- E-commerce Admin product add/delete করতে পারে
- User শুধুমাত্র product view ও order করতে পারে
- Dashboard শুধুমাত্র Admin access করতে পারে
✅ Best Practices
- Role validation সবসময় middleware-এ রাখুন
- Hard-coded role এড়িয়ে database-driven role ব্যবহার করুন
- JWT secret নিরাপদ রাখুন
- Admin route আলাদা করে organize করুন
লোড হচ্ছে...
1. Role-Based Access Control কী?
User এর role অনুযায়ী permission নির্ধারণ করাকে Role-Based Access Control বলে।
2. Admin ও User Role আলাদা করা কেন জরুরি?
Security ও unauthorized access প্রতিরোধ করার জন্য।