代码之家  ›  专栏  ›  技术社区  ›  Tri

Flask安全覆盖Flask登录终结点

  •  1
  • Tri  · 技术社区  · 7 年前

    我做了一个学费支付应用程序使用 ,并使用 烧瓶登录 对于想为孩子支付学费的家长账户。

    问题是当家长试图用他们的帐户登录时 烧瓶登录 ,它总是重定向到 登录页面。

    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)
    

    这是的配置文件 统一资源定位地址

    SECURITY_URL_PREFIX = "/admin_school"
    SECURITY_LOGIN_URL = "/login_admin/"
    SECURITY_POST_LOGIN_VIEW = "/admin_school/"
    

    如果我为这个展示图片,也许会更清晰,这是家长登录页面: enter image description here 当父帐户尝试登录时 ,而不是 父仪表板页 ,它重定向到 enter image description here 但正如我们在 下一个 参数:

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

    它仍然拥有 parent_dashboard

    那么,我的代码有什么问题,为什么Flask admin重写Flask登录。。?

    任何帮助都将不胜感激。

    0 回复  |  直到 7 年前