The code sends 'Access denied' with status 401 if req.isAuthenticated() is false.
Step 2: Determine output for unauthenticated user
Since the user is unauthenticated, the condition is true and 'Access denied' is sent.
Final Answer:
Access denied -> Option A
Quick Check:
Unauthenticated user gets 'Access denied' [OK]
Hint: Check if condition sends 'Access denied' for unauthenticated [OK]
Common Mistakes:
Assuming unauthenticated users see profile
Expecting a redirect instead of 401 status
Confusing 404 with access denial
4. Identify the error in this Express authentication middleware:
function auth(req, res, next) {
if (req.isAuthenticated) {
next();
} else {
res.redirect('/login');
}
}
medium
A. res.redirect should be res.sendRedirect
B. next() should be res.next()
C. Middleware should return a value
D. Missing parentheses in req.isAuthenticated call
Solution
Step 1: Check how req.isAuthenticated is used
The code uses req.isAuthenticated without parentheses, treating it as a property.
Step 2: Correct usage of req.isAuthenticated()
It is a function and must be called with parentheses: req.isAuthenticated().
Final Answer:
Missing parentheses in req.isAuthenticated call -> Option D
Quick Check:
Call req.isAuthenticated() as a function [OK]
Hint: Remember req.isAuthenticated() needs () to call [OK]
Common Mistakes:
Using req.isAuthenticated without ()
Confusing next() with res.next()
Using wrong redirect method name
5. You want to protect multiple routes in your Express app so only authenticated users can access them. Which approach best applies authentication efficiently?
hard
A. Create an authentication middleware and apply it to all protected routes.
B. Add the authentication check inside each route handler separately.
C. Check authentication only on the homepage route.
D. Use client-side JavaScript to hide protected routes.
Solution
Step 1: Understand route protection needs
Multiple routes require the same authentication check to avoid repeating code.
Step 2: Use middleware for efficient authentication
Middleware can be applied to many routes at once, centralizing the check and improving maintainability.
Final Answer:
Create an authentication middleware and apply it to all protected routes. -> Option A
Quick Check:
Middleware centralizes authentication checks [OK]
Hint: Use middleware to protect many routes at once [OK]