Authentication · Lesson 6 of 7
Protected Pages
Require authentication and authorization before returning protected data.
Lesson
Check identity and permission on every protected request, not only when displaying a link. A signed-in user may still lack access to a particular record. Deny by default, return an appropriate status, and avoid loading sensitive data before the authorization decision.
Authentication and authorization are separate checks with different responsibilities.
Further guidance
Use PHP password hashing APIs, regenerate a session identifier after authentication, and clear session state during logout. Authentication identifies the user; authorization checks whether that user may perform this action on this record. Rate-limit sensitive endpoints and keep failure messages generic.
Practice task: Create a fresh example for Protected Pages. Predict the result before running it, then change one input and explain why the result changes. Test a normal case and one boundary or invalid case where it applies. Compare your output with the example and note one rule you would use in a real project.
Code examples
Protected Pages
PHP
session_start();
if (! isset($_SESSION['user_id'])) {
http_response_code(401);
exit('Sign in required');
}
Expected output
An unauthenticated request receives HTTP 401
Key points
- Require authentication and authorization before returning protected data.
- Store password hashes, not plaintext passwords.
- Check authorization on every protected operation.
Your learning progress
Finish this lesson
Optional practice
PHP playground
This site does not execute learner-provided PHP code. Connect a secured PHP sandbox service before enabling code execution.
Execution is disabled. No code is sent to a server.