Node.js应用程序的授权方法和devise模式
我正在构build一个内部企业软件平台的多页面pipe理界面。 想想大量的粘合逻辑将各种API,db查询和shell脚本捆绑在一起。
我们将使用node.js,express框架(包括jade模板)和LDAP进行authentication。
我正在努力寻找有关节点应用程序授权的devise模式和最佳实践的信息。 最好是,我想使用基于angular色的模式,因为我的用户熟悉这种方法及其照顾和喂养。
我是node.js的新手,所以请不要以为我已经看过一个模块或stream行的博客文章。 有可能是有大量的信息,我根本不知道在哪里看。
提前感谢您提供的任何信息!
根据你的第一个问题,你需要在NodeJs中实现一些授权stream程。 我已经探索并使用了多个NodeJs的API。 我更愿意为企业应用程序提供以下API。
-
如果在AngularJS中开发SPA(前端),对于身份validation: 护照或卫星 。
-
对于授权: ACL 。 Methods和REST API上基于angular色的安全性。
其次,你需要一些NodeJs的实现和开发方法。
-
Easy和我最喜欢的devise模式和NodeJs框架:MVC框架, SailsJs 。 为了准备开始和模块化的体系结构。 代码pipe理从长远来看很容易(企业应用程序最实际的要求)。 易于维护。 SailsJs还预先configuration了Socket.io ,使用它可以在项目中创build实时模块,小部件,聊天小部件。
-
Express可以使用Express并devise自己的自定义MVC项目结构。 这也是受欢迎和强大的。 你可以在Yeoman上find同样stream行的种子项目
-
Redis作为caching或会话层。 使用单独的caching或会话层总是好的,因为它不会阻止您将云上的应用程序扩展到第n个实例。
-
您可以使用Redis和Socket.io创build实时function,例如地理位置 ,用户在线(在线/离线),聊天,推送通知等等。
-
ORM: 水线 。 对于它容易查询的方法。 这也是SailsJs的内置和默认的ORM。 如果不使用SailsJs,你也可以使用Sequelizejs。 我build议使用DB提供者提供的本地连接器。
-
数据库:根据您的要求。 Waterline ORM支持PostgreSQL,MySQL,MongoDB等。
- 我的favitourite视图引擎: EJS 。 不需要学习新的东西来开发你的表示层。 这也是SailsJs的内置和默认视图引擎,这就是为什么我是SailsJs的粉丝。
我想,我已经涵盖了所有重要的信息来在NodeJs中创build一个企业应用程序。 我没有说,上面的软件包是最好的,但协作,他们可以最适合任何企业的情况。 还有其他已知的包,你可以根据自己的要求使用。
以下是一些开始使用的信息:
- 护照是一种stream行的authentication模块
- 快速auth示例显示如何执行简单的身份validation没有额外的模块
- 快速路由中间件实例解释了如何实现基于angular色的authentication
- 在nodejs.org上关于ldapjs模块的 博客文章
希望能够让开始更容易。
我应该说节点授权也是一个很好的select。 这个想法是从SAP(ERP提供商)借来的,它是一个面向对象的授权。 它也可以作为其他框架的使用,如Passport和Express。
另一种select是使用与MongoDB非常好的CASL 。 另外还有一篇关于如何将基于CASL的授权迭代到expressjs应用程序的文章 – https://medium.com/@sergiy.stotskiy/authorization-with-casl-in-express-app-d94eb2e2b73b