from flask import Blueprint, request, session, redirect, url_for, abort, current_app from functools import wraps bp = Blueprint("auth", __name__) def login_required(f): @wraps(f) def decorated(*args, **kwargs): if not session.get("logged_in"): if request.path.startswith("/api/"): return {"error": "unauthorized"}, 401 return redirect(url_for("auth.login", next=request.url)) return f(*args, **kwargs) return decorated @bp.route("/login", methods=["GET", "POST"]) def login(): if session.get("logged_in"): return redirect(url_for("main.dashboard")) if request.method == "POST": import os user = request.form.get("username", "") pwd = request.form.get("password", "") valid_user = os.environ.get("SM_ADMIN_USER", "admin") valid_pwd = os.environ.get("SM_ADMIN_PASSWORD", "") if user == valid_user and pwd == valid_pwd: session["logged_in"] = True session.permanent = True return redirect(request.args.get("next") or url_for("main.dashboard")) return f"", 401 return """
SOCKS5 代理管理系统