Performance: Role-based access control
MEDIUM IMPACT
This affects server response time and user interaction speed by controlling access logic before processing requests.
function checkRole(role) {
return (req, res, next) => {
if (!req.user) return res.status(401).send('Unauthorized');
if (req.user.roles.includes(role)) {
next();
} else {
res.status(403).send('Forbidden');
}
};
}
app.get('/admin', checkRole('admin'), (req, res) => {
res.send('Welcome Admin');
});app.use((req, res, next) => {
if (!req.user) return res.status(401).send('Unauthorized');
if (req.user.roles.includes('admin')) {
next();
} else {
res.status(403).send('Forbidden');
}
});| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Global role check middleware on all routes | 0 (server-side) | 0 | 0 | [X] Bad |
| Route-specific role check middleware | 0 (server-side) | 0 | 0 | [OK] Good |