Next.js
/Beginner
Authentication Concepts
Definition
The foundational concepts of verifying WHO a user is (Authentication) and WHAT they are allowed to do (Authorization) in a web application.
Explain Like I'm New
Authentication is checking a user's ID card at the front door to see if they are actually John Doe. Authorization is checking if John Doe's ID card has the 'VIP' stamp allowing him into the VIP lounge.
Real World Example
Logging in with Google (Authentication), and then the system checking if your account is an 'Admin' before showing you the 'Delete Database' button (Authorization).
Common Use Cases
- •Securing applications
- •User management
Terminal Output
bash / terminal
/*
The Authentication Flow in Next.js:
1. User enters credentials in a Client Component.
2. Credentials sent to an API Route or Server Action.
3. Server validates credentials against the Database.
4. Server generates a secure Token (JWT or Session ID).
5. Server sends token back inside a securely encrypted HTTP-Only Cookie.
6. On all future page loads, Next.js Server Components read that Cookie to identify the user before rendering HTML.
*/
Interview Questions
basic
- What is the difference between Authentication and Authorization?
intermediate
- Why are cookies generally preferred over `localStorage` for storing authentication tokens in Next.js?