Flask-Login shows 401 instead of redirecting to login view

Deadly 提交于 2019-12-01 06:06:12

问题


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!'

回答1:


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'


来源:https://stackoverflow.com/questions/33724161/flask-login-shows-401-instead-of-redirecting-to-login-view

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!