Flask-Login显示401而不是重定向到登录视图 [英] Flask-Login shows 401 instead of redirecting to login view
本文介绍了Flask-Login显示401而不是重定向到登录视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
@login_required
的视图时,我得到了401消息而不是登录页面。 $ b $ p $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $'$ $' LoginManager()
login_manager.init_app(app)
@ login_manager.user_loader
def load_user(user_id):
返回User.get(user_id)
@ app.route('/ login',methods = ['GET','POST'])
def login():$ b $如果request.method =='POST':
#从表单$ b $认证用户login_user(用户)
返回重定向(url_for('index'))
返回render_template('login.html')
@ app.route('/ protected')
@login_required
def protected():
return'Hello,World!'
$ c $你还没有告诉Flask-Login用什么视图来显示登录表单,所以它默认为通用401错误。从文档:如果登录视图是
login_manager.login_view ='login'
$> c $ c>
Using Flask-Login, I want to require login for some views. When I try to access a view that is decorated with @login_required
, I get a 401 message instead of the login page. How do I set this up correctly?
from flask_login import LoginManager, login_required, login_user
login_manager = LoginManager()
login_manager.init_app(app)
@login_manager.user_loader
def load_user(user_id):
return User.get(user_id)
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
# authenticate user from form
login_user(user)
return redirect(url_for('index'))
return render_template('login.html')
@app.route('/protected')
@login_required
def protected():
return 'Hello, World!'
解决方案
You haven't told Flask-Login what view to use to show the login form, so it defaults to a generic 401 error. From the docs: "If the login view is not set, it will abort with a 401 error."
login_manager.login_view = 'login'
这篇关于Flask-Login显示401而不是重定向到登录视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文