update pay ui
This commit is contained in:
28
app.py
28
app.py
@@ -293,13 +293,20 @@ app.config['SECRET_KEY'] = os.environ.get('FLASK_SECRET_KEY', 'vf_production_sec
|
||||
|
||||
# ============ Redis Session 配置(支持多进程/多 Worker)============
|
||||
# 使用 Redis 存储 session,确保多个 Gunicorn worker 共享 session
|
||||
# 复用前面定义的 _REDIS_HOST 和 _REDIS_PORT
|
||||
app.config['SESSION_TYPE'] = 'redis'
|
||||
app.config['SESSION_REDIS'] = redis.Redis(host=_REDIS_HOST, port=_REDIS_PORT, db=1) # db=1 用于 session
|
||||
app.config['SESSION_PERMANENT'] = True
|
||||
app.config['SESSION_USE_SIGNER'] = True # 对 session cookie 签名,提高安全性
|
||||
app.config['SESSION_KEY_PREFIX'] = 'vf_session:' # session key 前缀
|
||||
print(f"📦 Flask Session 配置: {_REDIS_HOST}:{_REDIS_PORT}/db=1")
|
||||
# 通过环境变量控制是否启用 Redis Session(排查问题时可以禁用)
|
||||
USE_REDIS_SESSION = os.environ.get('USE_REDIS_SESSION', 'true').lower() == 'true'
|
||||
|
||||
if USE_REDIS_SESSION:
|
||||
app.config['SESSION_TYPE'] = 'redis'
|
||||
app.config['SESSION_REDIS'] = redis.Redis(host=_REDIS_HOST, port=_REDIS_PORT, db=1) # db=1 用于 session
|
||||
app.config['SESSION_PERMANENT'] = True
|
||||
app.config['SESSION_USE_SIGNER'] = True # 对 session cookie 签名,提高安全性
|
||||
app.config['SESSION_KEY_PREFIX'] = 'vf_session:' # session key 前缀
|
||||
print(f"📦 Flask Session 配置: Redis {_REDIS_HOST}:{_REDIS_PORT}/db=1")
|
||||
else:
|
||||
# 使用默认的 cookie session(单 Worker 模式可用)
|
||||
app.config['SESSION_TYPE'] = 'null' # 禁用服务端 session,使用 cookie
|
||||
print(f"📦 Flask Session 配置: Cookie 模式(单 Worker)")
|
||||
# ============ Redis Session 配置结束 ============
|
||||
|
||||
# Cookie 配置 - 重要:HTTPS 环境必须设置 SECURE=True
|
||||
@@ -313,9 +320,10 @@ app.config['REMEMBER_COOKIE_DURATION'] = timedelta(days=30) # 记住登录30天
|
||||
app.config['REMEMBER_COOKIE_SECURE'] = True # 生产环境使用 HTTPS,必须为 True
|
||||
app.config['REMEMBER_COOKIE_HTTPONLY'] = True # 防止XSS攻击
|
||||
|
||||
# 初始化 Flask-Session(Redis 存储)
|
||||
Session(app)
|
||||
print("✅ Flask-Session (Redis) 已初始化,支持多 Worker 共享 session")
|
||||
# 初始化 Flask-Session(仅在启用 Redis Session 时)
|
||||
if USE_REDIS_SESSION:
|
||||
Session(app)
|
||||
print("✅ Flask-Session (Redis) 已初始化,支持多 Worker 共享 session")
|
||||
|
||||
# 配置邮件
|
||||
app.config['MAIL_SERVER'] = MAIL_SERVER
|
||||
|
||||
Reference in New Issue
Block a user