我正在为一个可扩展的物联网应用程序做一些架构选择方面的努力。
我选择基于Twisted,并使用Cyclone框架来提供许多Tornado便利功能(WebSockets、认证装饰器、安全Cookie等)。
对我来说,使用Twisted核心非常完美。我有很多IP协议和硬件接口,发现它们都有很好的库支持(添加新协议和接口到我的应用程序是我可能会遇到的最有可能的项目范围蔓延角度),而且Twisted需要很低的CPU,并提供非常高的连接数。
我的问题在于二级Web应用程序功能。
我引入了Cyclone,认为它的身份验证好处(OpenID、OAuth、用户认证装饰器和安全Cookie)不需要在我的Web应用程序中实现用户/会话/管理员功能。但在抽象化我的数据库(通过txmongo)和仅仅构建用户登录的500多行代码后,我发现我既要:
- 不理解小型Cyclone/Tornado在用户/会话/管理员空间中所起的作用,以及
- 不理解如果您试图构建一个多用户认证Web应用程序,需要填补多少代码空缺。
在Python异步空间中(...希望在Twisted空间中,考虑到我的协议需求),是否有任何插件或替代框架提供类似于Flask-Login和Flask-Admin的即用型用户/登录/管理功能?
附言:我已经看过Klein作为显而易见的Twisted版本的Flask,但它似乎没有插件生态系统,并且我在那里找不到任何强大的用户/会话/管理员。
再附言:在我写这个问题的时候,我已经写了自己(糟糕的)用户登录会话系统。因此,我真正想要的是“管理员”功能(对用户样式记录的自动CRUD函数,包括Web UI渲染,所有这些都是以Twisted/异步方式设计的)。我在问题中问及用户/登录,以防万一已经有一个已经集成的解决方案(例如flask-login和flask-admin),在这种情况下,我将很高兴放弃我的代码并切换到该解决方案。