重构为 HTTP SSO 扫码方案并引入 Vue3 前端
移除 Playwright 浏览器自动化,改用 passport/SSO HTTP 接口获取二维码与轮询登录;后端模块化拆分,前端替换为 Vue3 SPA。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
import logging
|
||||
import os
|
||||
from logging.handlers import RotatingFileHandler
|
||||
|
||||
from flask import Flask
|
||||
|
||||
from backend.config import FRONTEND_DIST, LOG_DIR, PORT, SECRET_KEY_PATH, STATIC_DIR
|
||||
from backend.routes.api import api_bp
|
||||
from backend.routes.spa import spa_bp
|
||||
|
||||
os.makedirs(LOG_DIR, exist_ok=True)
|
||||
os.makedirs(STATIC_DIR, exist_ok=True)
|
||||
|
||||
|
||||
def _load_secret_key():
|
||||
secret = os.environ.get("SECRET_KEY")
|
||||
if not secret and os.path.exists(SECRET_KEY_PATH):
|
||||
with open(SECRET_KEY_PATH, "rb") as f:
|
||||
secret = f.read()
|
||||
if not secret:
|
||||
secret = os.urandom(24)
|
||||
with open(SECRET_KEY_PATH, "wb") as f:
|
||||
f.write(secret)
|
||||
return secret
|
||||
|
||||
|
||||
def create_app():
|
||||
app = Flask(__name__)
|
||||
app.secret_key = _load_secret_key()
|
||||
|
||||
handler = RotatingFileHandler(
|
||||
os.path.join(LOG_DIR, "app.log"),
|
||||
maxBytes=1024 * 1024 * 10,
|
||||
backupCount=5,
|
||||
encoding="utf-8",
|
||||
)
|
||||
handler.setLevel(logging.INFO)
|
||||
handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))
|
||||
app.logger.addHandler(handler)
|
||||
app.logger.setLevel(logging.INFO)
|
||||
|
||||
app.register_blueprint(api_bp)
|
||||
app.register_blueprint(spa_bp)
|
||||
return app
|
||||
Reference in New Issue
Block a user