29 lines
975 B
Python
29 lines
975 B
Python
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"))
|