Fix session cookie size issue by implementing server-side sessions with Flask-Session

This commit is contained in:
nmemmert committed 2025-11-05 13:23:39 -05:00
1 parent 1ab08805fc
commit aa0a86d9be
3 files changed
+13

No files matched your search

+7
View File
@@ -16,12 +16,19 @@ from functools import wraps
import secrets import secrets
import base64 import base64
import hashlib import hashlib
from flask_session import Session
app = Flask(__name__) app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = tempfile.mkdtemp() app.config['UPLOAD_FOLDER'] = tempfile.mkdtemp()
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY', 'secret') app.config['SECRET_KEY'] = os.getenv('SECRET_KEY', 'secret')
app.config['MAX_CONTENT_LENGTH'] = 1000 * 1024 * 1024 * 1024 # 1000TB app.config['MAX_CONTENT_LENGTH'] = 1000 * 1024 * 1024 * 1024 # 1000TB
# Configure server-side sessions to avoid cookie size limits
app.config['SESSION_TYPE'] = 'filesystem'
app.config['SESSION_FILE_DIR'] = '/tmp/flask_sessions'
app.config['SESSION_PERMANENT'] = False
Session(app)
# Load environment variables # Load environment variables
load_dotenv() load_dotenv()
+1
View File
@@ -1,4 +1,5 @@
Flask==3.0.0 Flask==3.0.0
Flask-Session==0.6.0
PyMuPDF==1.23.7 PyMuPDF==1.23.7
Werkzeug==3.0.1 Werkzeug==3.0.1
waitress==3.0.0 waitress==3.0.0
+5
View File
@@ -328,6 +328,11 @@ sudo chown $USER:$USER /var/log/pdf-sort-merge
log_info "Creating application data directories..." log_info "Creating application data directories..."
mkdir -p results static templates mkdir -p results static templates
# Create Flask session directory for server-side sessions
log_info "Creating Flask session directory..."
sudo mkdir -p /tmp/flask_sessions
sudo chown $USER:$USER /tmp/flask_sessions
# Set up firewall (optional) # Set up firewall (optional)
log_info "Configuring firewall..." log_info "Configuring firewall..."
sudo ufw allow 80/tcp || log_warning "Failed to configure firewall for port 80 - you may need to do this manually" sudo ufw allow 80/tcp || log_warning "Failed to configure firewall for port 80 - you may need to do this manually"