0
0
Flaskframework~8 mins

Remember me functionality in Flask - Performance & Optimization

Choose your learning style9 modes available
Performance: Remember me functionality
MEDIUM IMPACT
This affects page load speed and interaction responsiveness by managing persistent login states and cookie handling.
Implementing persistent login with 'remember me' in Flask
Flask
from flask import Flask, request, redirect, make_response
from itsdangerous import URLSafeTimedSerializer
app = Flask(__name__)
serializer = URLSafeTimedSerializer('secret-key')

@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    resp = make_response(redirect('/'))
    if 'remember' in request.form:
        token = serializer.dumps(username)
        resp.set_cookie('remember_token', token, max_age=60*60*24*30, httponly=True, secure=True, samesite='Lax')
    else:
        resp.set_cookie('remember_token', '', expires=0)
    return resp
Uses encrypted token with limited max_age and secure cookie flags to reduce cookie size and improve security, minimizing blocking and improving responsiveness.
📈 Performance GainReduces cookie size and network payload; avoids blocking rendering; improves interaction speed.
Implementing persistent login with 'remember me' in Flask
Flask
from flask import Flask, request, redirect, make_response
app = Flask(__name__)

@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    resp = make_response(redirect('/'))
    if 'remember' in request.form:
        resp.set_cookie('user', username, max_age=60*60*24*365)  # 1 year
    else:
        resp.set_cookie('user', username)
    return resp
Sets cookies without secure flags and uses long max_age without encryption, causing security risks and potential unnecessary cookie size.
📉 Performance CostAdds unencrypted cookie data increasing network payload; can block rendering if cookie size grows large.
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Unencrypted large cookieNone0Minimal[X] Bad
Encrypted small token cookieNone0Minimal[OK] Good
Rendering Pipeline
Remember me functionality mainly affects the network and scripting stages by adding cookies that the browser sends with requests and scripts that read them to restore sessions.
Network
Scripting
Rendering
⚠️ BottleneckNetwork latency and scripting time to validate and parse cookies
Core Web Vital Affected
INP
This affects page load speed and interaction responsiveness by managing persistent login states and cookie handling.
Optimization Tips
1Use encrypted tokens instead of plain user data in cookies.
2Set secure, HttpOnly, and SameSite flags on remember me cookies.
3Limit cookie max_age to balance persistence and network overhead.
Performance Quiz - 3 Questions
Test your performance knowledge
What is a key performance benefit of using encrypted tokens for 'remember me' cookies?
AIncreases cookie size for better security
BAllows storing plain user data for faster access
CSmaller cookie size reduces network payload and speeds up requests
DDisables browser caching to improve freshness
DevTools: Network
How to check: Open DevTools, go to Network tab, reload page, and inspect request headers for cookie size and flags.
What to look for: Look for cookie size under request headers and presence of secure, httponly, and samesite flags.