Flask对SSL的重定向过多

时间:2017-12-15 08:47:13

标签: python ssl flask

我试图在我的烧瓶应用程序中强制http到https,但我一直收到错误" Too Many Redirects"在我试图使用的两种方法中。我已经尝试过并阅读了类似的SO问题,但它还没有解决。 我做错了什么?

这是使用修饰函数的第一种方法:

def ssl_required(fn):
@wraps(fn)
def decorated_view(*args, **kwargs):
    if request.is_secure:
        return fn(*args, **kwargs)
    else:
        return redirect(request.url.replace("http://", "https://"))

    return decorated_view

这是我的观点功能:

@main.route('/stats', methods=["GET", "POST"])
@ssl_required
@login_required
def stats():

    users = User.query.all()

    return render_template('stats.html', users=users)

这是第二种方法:

@auth.before_app_request
def before_request():
    if request.url.startswith('http://'):
        url = request.url.replace('http://', 'https://', 1)
        code = 301
        return redirect(url, code=code)

此功能的视图功能为:

@main.route('/stats', methods=["GET", "POST"])
@login_required
def stats():

    users = User.query.all()

    return render_template('stats.html', users=users)

0 个答案:

没有答案