我一直在使用 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。
答案 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