Flask 默认使用签名 Cookie 实现会话(基于 SECRET_KEY),也可切换服务器端方案(如 Redis)。
读取/设置 Cookie:
from flask import request, make_response @app.get("/get-cookie") def get_cookie(): return request.cookies.get("sid") @app.get("/set-cookie") def set_cookie(): resp = make_response("ok") resp.set_cookie("sid", "abc", httponly=True, samesite="Lax", max_age=3600) return resp
Session:
from flask import session @app.get("/login") def login(): session["uid"] = 1 return "ok" @app.get("/me") def me(): return {"uid": session.get("uid")}
服务器端会话:使用扩展(如 Flask-Session)存储到 Redis/Memcached。
pip install flask-session redis
安全:设置 SESSION_COOKIE_SECURE=True 在 HTTPS 下启用 Secure;合理设置 SameSite、防止 CSRF 与会话固定。
SESSION_COOKIE_SECURE=True