Flask-Login显示401而不是重定向到登录视图 [英] Flask-Login shows 401 instead of redirecting to login view

查看:736
本文介绍了Flask-Login显示401而不是重定向到登录视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用Flask-Login,我想要求登录一些视图。当我尝试访问装饰有 @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!'
文档:如果登录视图是

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

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆