goctests0 commited on
Commit
4ba66be
·
verified ·
1 Parent(s): 64cb3d4

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -4
app.py CHANGED
@@ -18,6 +18,7 @@ from datetime import datetime, timezone
18
 
19
  from dotenv import load_dotenv
20
  from flask import Flask, request, jsonify, render_template, session
 
21
 
22
  import database
23
  import stt
@@ -33,10 +34,13 @@ AUDIO_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "static", "
33
  def create_app():
34
  flask_app = Flask(__name__)
35
  flask_app.secret_key = os.environ["SECRET_KEY"]
36
- # Hugging Face Spaces (and most production hosts) serve over HTTPS via a
37
- # reverse proxy. Without these two flags the browser drops the session
38
- # cookie on cross-request navigation, so session["user_id"] is missing
39
- # when /history is called and the consultation tab shows nothing.
 
 
 
40
  flask_app.config["SESSION_COOKIE_SECURE"] = True
41
  flask_app.config["SESSION_COOKIE_SAMESITE"] = "Lax"
42
  os.makedirs(AUDIO_DIR, exist_ok=True)
 
18
 
19
  from dotenv import load_dotenv
20
  from flask import Flask, request, jsonify, render_template, session
21
+ from werkzeug.middleware.proxy_fix import ProxyFix
22
 
23
  import database
24
  import stt
 
34
  def create_app():
35
  flask_app = Flask(__name__)
36
  flask_app.secret_key = os.environ["SECRET_KEY"]
37
+ # Hugging Face Spaces (and Render) sit behind a reverse proxy that
38
+ # terminates HTTPS and forwards requests to gunicorn as plain HTTP.
39
+ # Without ProxyFix, Flask sees every request as HTTP, which means
40
+ # SESSION_COOKIE_SECURE=True would silently stop Flask from ever
41
+ # sending the session cookie. ProxyFix reads X-Forwarded-Proto so
42
+ # Flask correctly treats the request as HTTPS end-to-end.
43
+ flask_app.wsgi_app = ProxyFix(flask_app.wsgi_app, x_for=1, x_proto=1, x_host=1)
44
  flask_app.config["SESSION_COOKIE_SECURE"] = True
45
  flask_app.config["SESSION_COOKIE_SAMESITE"] = "Lax"
46
  os.makedirs(AUDIO_DIR, exist_ok=True)