0
0
Flaskframework~20 mins

Logout implementation in Flask - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Flask Logout Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What happens after calling logout_user() in Flask-Login?

Consider a Flask app using Flask-Login. After calling logout_user(), what is the state of current_user.is_authenticated?

Flask
from flask_login import logout_user, current_user

logout_user()
print(current_user.is_authenticated)
ANone, because current_user becomes None after logout
BTrue, because logout_user() does not affect authentication state
CFalse, because the user is logged out and no longer authenticated
DRaises an exception because current_user is undefined after logout
Attempts:
2 left
💡 Hint

Think about what logout_user() does to the user session.

📝 Syntax
intermediate
2:00remaining
Which logout route code correctly logs out a user in Flask?

Choose the correct Flask route code that logs out the user and redirects to the home page.

Flask
from flask import redirect, url_for
from flask_login import logout_user

@app.route('/logout')
def logout():
    # logout code here
    return redirect(url_for('home'))
A
logout()
return redirect(url_for('home'))
B
logout_user
return redirect(url_for('home'))
C
logout_user()
return redirect('home')
D
logout_user()
return redirect(url_for('home'))
Attempts:
2 left
💡 Hint

Remember to call the function and use url_for for redirect.

🔧 Debug
advanced
2:00remaining
Why does this logout route cause a runtime error?

Given this Flask logout route, why does it raise an error?

Flask
from flask import redirect, url_for
from flask_login import logout_user

@app.route('/logout')
def logout():
    logout_user
    return redirect(url_for('home'))
Alogout_user is missing parentheses, causing a TypeError at runtime
Blogout_user is not called as a function, so no logout happens and no error occurs
Curl_for('home') is invalid and causes a KeyError
DThe route decorator is missing parentheses, causing a SyntaxError
Attempts:
2 left
💡 Hint

Check how functions are called in Python.

state_output
advanced
2:00remaining
What is the session state after logout_user() is called?

In Flask with Flask-Login, after calling logout_user(), what happens to the session data related to the user?

Flask
from flask import session
from flask_login import logout_user

logout_user()
print('_user_id' in session)
ARaises KeyError because session is cleared completely
BFalse, because logout_user() removes the user_id from the session
CTrue, because logout_user() does not modify the session
DNone, because session becomes None after logout
Attempts:
2 left
💡 Hint

Think about what Flask-Login stores in the session for logged-in users.

🧠 Conceptual
expert
3:00remaining
Why is it important to protect the logout route with login_required?

In Flask-Login, why should the logout route usually be decorated with @login_required?

Flask
@app.route('/logout')
@login_required
def logout():
    logout_user()
    return redirect(url_for('home'))
ATo prevent anonymous users from accessing logout and causing errors or confusing behavior
BTo ensure logout_user() can only be called once per session
CTo automatically redirect logged-out users to the login page
DTo enable Flask-Login to track logout times for analytics
Attempts:
2 left
💡 Hint

Consider what happens if a user who is not logged in tries to logout.