29 lines
975 B
Python
Raw Normal View History

2025-11-28 17:39:54 +08:00
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"))