我正在为内部企业软件平台构建多页管理界面。考虑将各种API,数据库查询和Shell脚本捆绑在一起的大量粘合逻辑。
我们将使用node.js,express框架(包括jade模板)和LDAP进行身份验证。
我正在努力寻找有关节点应用程序中授权的设计模式和最佳实践的信息。最好是,我希望使用基于角色的模型,因为我的用户熟悉该方法及其护理和提供方法。
我是node.js的新手,所以请不要以为我已经看过模块或热门博客文章。可能有很多信息,我根本不知道在哪里看。
预先感谢您能够提供的任何信息!
Answers:
根据第一个问题,您希望在NodeJ中实现一些授权过程。我已经探索并使用了许多NodeJ的API。我希望遵循用于企业应用程序的API。
对于身份验证:如果在AngularJS中开发SPA(前端),则使用Passport或Satellizer。
对于授权:ACL。基于方法和REST API的基于角色的安全性。如果您也想使用RABC,ABAC,我想提一提Casbin。
其次,您需要一些NodeJ的实现和开发方法。
Easy和我最喜欢的NodeJs设计模式和框架:MVC框架,SailsJs。为其准备好启动和模块化架构。从长远来看,代码管理很容易(企业应用程序的大多数实际要求)。易于维护。SailsJs也已通过Socket.io进行了预配置,您可以使用它在项目中创建实时模块,小部件,聊天小部件。
Express您可以使用Express并设计自己的自定义MVC项目结构。这也很流行而且很健壮。在Yeoman上可以找到相同的流行种子项目
Redis作为缓存或会话层。最好使用单独的缓存或会话层,因为它不会阻止您将云上的应用程序扩展到第n个实例。
ORM:水线。因其简单的查询方法。它也是SailsJs的内置默认ORM。您还可以使用Sequelizejs如果不使用SailsJs。我建议使用数据库提供程序提供的本机连接器。
数据库:根据您的要求。Waterline ORM支持PostgreSQL,MySQL,MongoDB等。
我认为,我已经介绍了在NodeJ中创建企业应用程序的所有重要信息。我并不是说,上述软件包是最好的,但是从协作的角度来看,它们可以最适合任何企业场景。还有其他已知的软件包,您可以根据自己的需求使用它们。
以下是一些入门信息:
希望这样可以更轻松地开始。
另一种选择是使用与MongoDB很好集成的CASL。也有是如何基于CASL到expressjs应用itegrate授权的文章- https://medium.com/@sergiy.stotskiy/authorization-with-casl-in-express-app-d94eb2e2b73b