Flask安全性覆盖Flask登录端点

时间:2019-01-26 07:17:57

标签: python flask flask-sqlalchemy flask-login flask-admin

我使用 Flask 创建了一个学费支付应用程序,并使用 Flask-admin 为管理付款的学校运营商创建了学费支付应用程序,并使用 Flask-login >想要支付子女学费的父母帐户。

问题在于,当父母尝试使用 Flask登录用其帐户登录时,它总是重定向到 Flask-admin 登录页面。

这是父级仪表板代码:

from flask_login import login_required

@app.route('/parent_dashboard')
@login_required
def parent_dashboard():
    children_data = db.session.query(Student.id, Student.name).filter_by(parent_id=current_user.id).all()
    return render_template('parent_dashboard.html', children_data=children_data)

这是父母的登录代码:

@app.route('/parent_login', methods=['GET', 'POST'])
def parent_login():
    if current_user.is_authenticated:
        return redirect(url_for('parent_dashboard'))
    form = LoginForm()
    if form.validate_on_submit():
        user = Parent.query.filter_by(email=form.email.data).first()
        if user is None or not user.check_password(form.password.data):
            return redirect(url_for('parent_login'))
        next_page = request.args.get('next')
        if not next_page or url_parse(next_page).netloc != '':
            next_page = url_for('parent_dashboard')
        return redirect(next_page)
    return render_template('login.html', form=form)

这是 URL Flask-admin

的配置文件
SECURITY_URL_PREFIX = "/admin_school"
SECURITY_LOGIN_URL = "/login_admin/"
SECURITY_POST_LOGIN_VIEW = "/admin_school/"

,如果我显示此图像,也许会更加清晰,这是父级登录页面: enter image description here 并且当父帐户尝试使用 Flask登录登录时,而不是转到父仪表板页面,它将重定向到 Flask-admin 登录页面: enter image description here 但是正如我们在 next 参数上的URL中看到的那样:

http://127.0.0.1:5000/admin_school/login_admin/?next=%2Fparent_dashboard

它仍然具有 parent_dashboard 参数。

那么,我的代码有什么问题,为什么Flask-admin会覆盖Flask-login ..?

任何帮助将不胜感激。

0 个答案:

没有答案