任何人都可以告诉这3个扩展之间是否有根本的区别,或者它们都做类似的事情? 我一直在阅读文档,似乎有很多交叉。 我猜有些只是提供更多的功能。
我想将用户角色添加到我的应用程序中,以便某些用户具有某些权限。 即level1用户可以创建5个资源,level2用户可以创建10个等。 我一直在看滚动我自己的,这似乎并不太棘手。 我正在考虑沿着this的线条使用装饰器http://flask.pocoo.org/snippets/98/这个解决方案会有任何安全问题吗? 我已经在使用Flask-login,所以我会将它与此集成。
一般来说,它们都是相似的,但其中一些具有比其他更多的功能。 例如,Flask-Security非常重,有许多额外的安全功能,如加密额外。 实际上,Flask-Security包括Flask-Principal作为子集。 Flask-Principal可以使用Flask-Login进行身份验证,即使这只是一个选项。 所以你可以看到它们都是相关的,但有些是彼此的子集或超集。
现在在你的具体情况下,你已经在使用Flask-Login这很棒。 如果您需要添加Flask-Login不支持的用户角色,我建议您扩展您的用户模型以添加角色列,然后复盖login_required装饰器。 如果您尝试使用Flask-Security等扩展,那么在您的情况下可能会矫枉过正。
例如,我将使用角色字段扩展我的用户类。 它可以有值"ANY","ADMIN"等。 任何手段都无关紧要。
然后,我将复盖login_required装饰器为: