我正在构建一个功能,供用户注册、登录、验证和授权自己,特别是使用 Python (Flask) 作为后端。我找到了一些解决方案,例如
flask-login
和 flask-security
。
据我了解,
flask-login
实际上并不执行任何身份验证,将所有 JWT 类型的工作留给我,而 flask-security
则处理这些场景。
话虽这么说,我有几个问题:
在我看来,
flask-security
是建立在flask-login
之上的。因此,使用该库似乎更好(至少对我来说),而不是尝试在重新设计身份验证方面重新发明轮子。 flask-security
的最后一次更新是在 2020 年 4 月 23 日。这让我相信人们仍然在积极寻找改进方法。也就是说,flask-security
是两者中更好的选择吗?
我也想在生产中使用它。那么这也是一个可行的解决方案吗?
Flask-Security 现已弃用,因此我不建议在生产中使用它。它有一个分支,名为“Flask Security Too”,但似乎并没有得到广泛关注。 说实话,即使它被维护了,它也不是我最喜欢的,因为我认为它试图做太多事情。
另一方面,Flask-Login 是一个可靠的库。它非常“脆弱”,因为它是低级别的,并且处理真正烦人的事情(创建会话,使用cookie保存它,传递current_user,将某些路由放在login_required装饰器后面),然后让你设计自己的流动并拉入您想要的库。例如,如果您想要社交登录或 OAuth 令牌存储,那么
Flask-Dance
,它与 Flask-Login 很好地集成并且得到积极维护,粉碎了与 Flask-Security 集成的 Flask-Social。还有 Flask-User,获得了很好的评价,但最后一次提交是在 2019 年,这有点可怕。
v4.x.x
)。不久前,也发布了
v5.x.x
版本。 你绝对应该检查一下。Flask-Security-Too:https://flask-security-too.readthedocs.io/
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
至少我做了什么/耸肩