生产环境的 Flask-Login 与 Flask-Security

问题描述 投票:0回答:3

我正在构建一个功能,供用户注册、登录、验证和授权自己,特别是使用 Python (Flask) 作为后端。我找到了一些解决方案,例如

flask-login
flask-security

据我了解,

flask-login
实际上并不执行任何身份验证,将所有 JWT 类型的工作留给我,而
flask-security
则处理这些场景。

话虽这么说,我有几个问题:

  1. 在我看来,

    flask-security
    是建立在
    flask-login
    之上的。因此,使用该库似乎更好(至少对我来说),而不是尝试在重新设计身份验证方面重新发明轮子。
    flask-security
    的最后一次更新是在 2020 年 4 月 23 日。这让我相信人们仍然在积极寻找改进方法。也就是说,
    flask-security
    是两者中更好的选择吗?

  2. 我也想在生产中使用它。那么这也是一个可行的解决方案吗?

python security flask production-environment
3个回答
14
投票

Flask-Security 现已弃用,因此我不建议在生产中使用它。它有一个分支,名为“Flask Security Too”,但似乎并没有得到广泛关注。 说实话,即使它被维护了,它也不是我最喜欢的,因为我认为它试图做太多事情。

另一方面,Flask-Login 是一个可靠的库。它非常“脆弱”,因为它是低级别的,并且处理真正烦人的事情(创建会话,使用cookie保存它,传递current_user,将某些路由放在login_required装饰器后面),然后让你设计自己的流动并拉入您想要的库。

例如,如果您想要社交登录或 OAuth 令牌存储,那么

Flask-Dance

,它与 Flask-Login 很好地集成并且得到积极维护,粉碎了与 Flask-Security 集成的 Flask-Social。

还有 Flask-User,获得了很好的评价,但最后一次提交是在 2019 年,这有点可怕。


1
投票
,虽然如果您尝试使用它的所有功能可能会很复杂,但事实证明,设置生产就绪应用程序实际上非常容易。它得到积极维护。我有一些使用这个库的生产项目(

v4.x.x

)。不久前,也发布了 
v5.x.x
 版本。
你绝对应该检查一下。
Flask-Security-Too:

https://flask-security-too.readthedocs.io/这两个答案自相矛盾,所以让我添加我的投票:

0
投票
据我所知,flask-login 对于生产环境来说足够安全,我认为你也可以轻松地这样做来提高它的安全性:

app.config["SESSION_COOKIE_SAMESITE"] = "strict" app.config["SESSION_COOKIE_SECURE"] = True app.config["SESSION_COOKIE_HTTPONLY"] = True app.config["REMEMBER_COOKIE_SAMESITE"] = "strict" app.config["REMEMBER_COOKIE_SECURE"] = True

至少我做了什么/耸肩
    

© www.soinside.com 2019 - 2024. All rights reserved.