我刚才说过使用Flask并试图在我的项目中实现一个小功能。目标是仅在请求来自经过身份验证的用户时才设置cookie。
我找到了两种方法。
第一种方法
@app.before_request
def before_request():
# set cookie if user is logged in
第二种方法,通过实现这样的方法 adding-a-simple-middleware-to-your-flask-application
有人可以向我解释这两种方法之间的主要区别是什么,应该在何时何地使用哪种方法。
此外,我目前正在使用“flask-login”来跟踪登录用户。 如果我使用第一种方法,我可以通过导入current_user
轻松验证是否有人登录from flask.ext.login import current_user
但如果我在使用第二种方法时尝试执行相同操作,则current_user始终为“None”,因为应用程序上下文不正确。
所以,我想知道我是否决定继续第二次实施,如何检查用户是否登录。
答案 0 :(得分:2)
我从未使用过你提到过的第二种方法。我确信它可以用它完成,但它非常罕见。我建议使用更常见的烧瓶功能。为了维护你的代码:) 所以你提到的第一种方法很好。
或者您可以使用decorators来获得更细粒度的访问限制。请记住,在制作实际响应对象时可以完成setting cookies in flask。这意味着你应该使用Deferred Request Callbacks在装饰函数中设置cookie。