update pay ui

This commit is contained in:
2025-12-12 06:59:33 +08:00
parent 9117f373d4
commit 036aef1171

20
app.py
View File

@@ -318,8 +318,8 @@ if USE_REDIS_SESSION:
app.config['SESSION_PERMANENT'] = True
app.config['SESSION_USE_SIGNER'] = True # 对 session cookie 签名,提高安全性
app.config['SESSION_KEY_PREFIX'] = 'vf_session:' # session key 前缀
# 显式设置 Session 生命周期为 7 天Flask-Session 会用这个值设置 Redis TTL
app.config['SESSION_LIFETIME'] = timedelta(days=7)
app.config['SESSION_REFRESH_EACH_REQUEST'] = True # 每次请求都刷新 session TTL
# 注意Flask-Session 使用 PERMANENT_SESSION_LIFETIME 作为 Redis TTL下面已配置为7天
print(f"📦 Flask Session 配置: Redis {_REDIS_HOST}:{_REDIS_PORT}/db=1, 过期时间: 7天")
else:
# 使用默认的 cookie session单 Worker 模式可用)
@@ -343,6 +343,21 @@ if USE_REDIS_SESSION:
Session(app)
print("✅ Flask-Session (Redis) 已初始化,支持多 Worker 共享 session")
# 确保 session 使用永久模式(解决 Flask-Session 0.8.0 默认 1 小时 TTL 问题)
@app.before_request
def make_session_permanent():
"""每次请求开始时确保 session 是永久的,使用 PERMANENT_SESSION_LIFETIME 作为 TTL"""
from flask import session
session.permanent = True
# 确保每次请求后刷新 session TTL解决 session 过早过期问题)
@app.after_request
def refresh_session(response):
"""每次请求后标记 session 为已修改,触发 Redis TTL 刷新"""
from flask import session
session.modified = True
return response
# 配置邮件
app.config['MAIL_SERVER'] = MAIL_SERVER
app.config['MAIL_PORT'] = MAIL_PORT
@@ -459,6 +474,7 @@ socketio = SocketIO(
"https://valuefrontier.cn", "http://valuefrontier.cn"],
async_mode=_async_mode,
message_queue=SOCKETIO_MESSAGE_QUEUE if _use_message_queue else None,
manage_session=False, # 让 Flask-Session 管理 session避免与 SocketIO 冲突
logger=True,
engineio_logger=False,
ping_timeout=120, # 心跳超时时间客户端120秒内无响应才断开