from flask import Blueprint, flash, redirect, render_template, request, url_for from flask_login import login_required, login_user, logout_user from app.extensions import db from app.forms import LoginForm from app.models import User auth_bp = Blueprint("auth", __name__) @auth_bp.route("/login", methods=["GET", "POST"]) def login(): form = LoginForm() if form.validate_on_submit(): user = User.query.filter_by(username=form.username.data).first() if not user or not user.is_active or not user.check_password(form.password.data): flash("用户名或密码错误", "danger") return render_template("auth/login.html", form=form) login_user(user, remember=True) return redirect(request.args.get("next") or url_for("apis.list_apis")) return render_template("auth/login.html", form=form) @auth_bp.route("/logout") @login_required def logout(): logout_user() return redirect(url_for("auth.login"))