Always protect routes that need login by checking session data.
Examples
This saves the logged-in user's name in the session to remember them.
Flask
session['user'] = username
This checks if a user is logged in before showing content.
Flask
if'user'in session:
return'User is logged in'else:
return'Please log in'
Sample Program
This Flask app lets a user log in with username and password. If correct, it saves the user in session and shows a dashboard. If not logged in, it redirects to login.
Never store passwords as plain text; always hash them in real apps.
Use secret_key to keep session data safe.
Redirect users to login if they try to access protected pages without authentication.
Summary
Authentication confirms who a user is.
It protects private data and pages.
Flask uses sessions to remember logged-in users.
Practice
(1/5)
1. Why is authentication important in a Flask web application?
easy
A. It speeds up the loading time of web pages.
B. It verifies the identity of users to protect sensitive data.
C. It automatically fixes bugs in the code.
D. It changes the website's color scheme based on user preference.
Solution
Step 1: Understand the purpose of authentication
Authentication checks who the user is by verifying their identity, usually with a username and password.
Step 2: Connect authentication to security
This process protects sensitive data and resources from unauthorized access.
Final Answer:
It verifies the identity of users to protect sensitive data. -> Option B
Quick Check:
Authentication = User identity verification [OK]
Hint: Authentication means checking who the user is [OK]
Common Mistakes:
Confusing authentication with website speed
Thinking authentication changes design
Believing authentication fixes bugs automatically
2. Which of the following is the correct way to protect a Flask route with authentication using Flask-Login?
easy
A. @login_required
def dashboard():
return 'Welcome to your dashboard!'
B. def login_required():
return 'Welcome!'
C. @app.route('/dashboard')
def login_required():
return 'Dashboard'
D. @app.login_required
def dashboard():
return 'Dashboard'
Solution
Step 1: Recognize Flask-Login decorator usage
The correct decorator to protect routes is @login_required placed above the route function.
Step 2: Check syntax and function name
@login_required
def dashboard():
return 'Welcome to your dashboard!' correctly uses @login_required above a function named dashboard that returns a welcome message.
Final Answer:
@login_required\ndef dashboard():\n return 'Welcome to your dashboard!' -> Option A
Quick Check:
Use @login_required decorator to protect routes [OK]
Hint: Use @login_required above route functions [OK]
Common Mistakes:
Using @app.login_required instead of @login_required
Defining login_required as a function instead of a decorator
Missing the decorator above the route function
3. Given this Flask route using Flask-Login, what happens when an unauthenticated user tries to access /profile?
A. The code uses @login_required but Flask-Login is not imported.
B. The route decorator @app.route is missing the URL.
C. The function settings() is missing a return statement.
D. The @login_required decorator is incorrectly placed inside the function.
Solution
Step 1: Check decorator placement
Decorators like @login_required must be placed above the function definition, not inside it.
Step 2: Verify function syntax
Placing @login_required inside the function causes a syntax error and does not protect the route.
Final Answer:
The @login_required decorator is incorrectly placed inside the function. -> Option D
Quick Check:
Decorators go above functions, not inside [OK]
Hint: Put decorators above function definitions, never inside [OK]
Common Mistakes:
Placing decorators inside function body
Forgetting to import Flask-Login
Missing return statement in route function
5. You want to create a Flask app where only logged-in users can access the /dashboard route, and users who are not logged in should be redirected to /login. Which of the following code snippets correctly implements this behavior using Flask-Login?
hard
A. from flask_login import login_required
@app.route('/dashboard')
@login_required
def dashboard():
return 'Dashboard Page'
# Flask-Login automatically redirects unauthenticated users to /login
B. @app.route('/dashboard')
def dashboard():
if not current_user.is_authenticated:
return redirect('/login')
return 'Dashboard Page'
C. @app.route('/dashboard')
@login_required
def dashboard():
return redirect('/login')
D. @app.route('/dashboard')
def dashboard():
return 'Dashboard Page'
Solution
Step 1: Identify Flask-Login usage for route protection
Using @login_required decorator from Flask-Login protects the route and handles redirection automatically.
Step 2: Check if redirection to /login is automatic
Flask-Login by default redirects unauthenticated users to the login view, so no manual redirect is needed inside the function.
Final Answer:
from flask_login import login_required
@app.route('/dashboard')
@login_required
def dashboard():
return 'Dashboard Page'
# Flask-Login automatically redirects unauthenticated users to /login -> Option A
Quick Check:
@login_required protects route and redirects unauthenticated users [OK]
Hint: Use @login_required; Flask-Login handles redirect automatically [OK]
Common Mistakes:
Manually redirecting inside the route when @login_required suffices
Returning redirect inside a protected route without condition
Not protecting the route at all
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.