在烧瓶中使用 before_request 重定向

时间:2021-06-11 18:47:50

标签: python authentication flask redirect flask-wtforms

我一直在使用 Flask 进行身份验证,我想检查用户是否在每个端点之前登录。如果不是,我想在 Flask 中使用 before 请求将其重定向到登录页面。

@app.before_request
def before_request():
    if((request.endpoint != 'login' or request.endpoint != 'signup' or request.endpoint != '') and 'logged_in' not in session):
        print("NOT LOGGED IN")
        return redirect(url_for('login'))

我已经尝试过这个,但它不起作用。有没有办法在 Flask 中使用 before_request 进行重定向。我也没有为此使用 login_manager。

1 个答案:

答案 0 :(得分:0)

你在说什么

if (request.endpoint != 'login' or request.endpoint != 'signup' or request.endpoint != '') and 'logged_in' not in session

相当于

if not (request.endpoint == 'login' and request.endpoint == 'signup' and request.endpoint == '') and 'logged_in' not in session

你想要的是

if not (request.endpoint == 'login' or request.endpoint == 'signup' or request.endpoint == '') and 'logged_in' not in session

if request.endpoint not in ('login', 'signup', '') and 'logged_in' not in session