我正在使用flask_login在我的烧瓶应用程序中实现auth。
下面是启用unauthorized_handler和login_required的方法
@login_manager.unauthorized_handler
def unauthorized_handler():
return redirect(url_for('login'))
# use decorators to link the function to a url
@app.route('/profile', methods=['GET'])
@flask_login.login_required
def profile():
return render_template('profile.html')我正在使用firebase作为后端服务。
@app.route('/login', methods=['GET', 'POST'])
def login():
auth = firebase.auth()
if request.method == 'POST':
try:
user = auth.sign_in_with_email_and_password(request.form['email'], request.form['password'])
if user != None:
return redirect(url_for('profile'))
except requests.exceptions.HTTPError as e:
response = e.args[0].response
error = response.json()['error']['code']
return redirect(url_for('home'))
return render_template('login.html')问题是,在我登录(这是成功的)之后,应用程序将自动重定向到/login url,而不是/profle。
我试着关闭调试模式,但仍然无法工作。
发布于 2019-05-03 15:25:02
这可能是双重重定向发生的情况,您首先被重定向到profile,然后login_required装饰器开始将您重定向回登录,因为从flask_login的角度来看,您还没有登录。
您可能已经从firebse检索了用户凭据,但是使用flask_login,您还必须调用login_user函数。(还请参阅烧瓶登录页面的登录示例 )
https://stackoverflow.com/questions/55971523
复制相似问题