我装饰了一个方法login_required,但我很惊讶它根本没有执行,允许匿名用户.current_user在方法内打印返回:
<flask_login.AnonymousUserMixin object at 0xb67dbd4c>
Run Code Online (Sandbox Code Playgroud)
是不是应该拒绝那些返回false的用户user.is_autheticated()?我做错了什么?
我这样设置了FL:
lm = LoginManager(app)
lm.login_view = 'root'
Run Code Online (Sandbox Code Playgroud)
在views.py中:
@lm.user_loader
def load_user(id):
return User.query.get(int(id))
Run Code Online (Sandbox Code Playgroud)
实际观点:
@login_required
@app.route("/messages")
def messages():
print "current user", current_user
return "hello world"
Run Code Online (Sandbox Code Playgroud)
一切看起来都不错,这可能意味着问题出在其他地方.
你正在使用什么配置?如果LOGIN_DISABLED或TESTING设置为true,则禁用身份验证.
如果您的配置正常,请在login_required装饰器内设置断点并检查它为何允许匿名用户进入.