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 করুন
👼 Quiz
/

লোড হচ্ছে...

Interview Questions:

1. Role-Based Access Control কী?

User এর role অনুযায়ী permission নির্ধারণ করাকে Role-Based Access Control বলে।

2. Admin ও User Role আলাদা করা কেন জরুরি?

Security ও unauthorized access প্রতিরোধ করার জন্য।