Node.js应用程序的授权方法和设计模式

Dav*_*ier 79 security authorization design-patterns node.js express

我正在为内部企业软件平台构建一个多页面管理界面.想想许多粘合逻辑将各种API,数据库查询和shell脚本捆绑在一起.

我们将使用node.js,express框架(包括jade模板)和LDAP进行身份验证.

我正在努力寻找有关节点应用程序授权的设计模式和最佳实践的信息.最好,我想使用基于角色的模型,因为我的用户熟悉这种方法及其护理和喂养.

我是node.js的新手,所以请不要假设我已经看过一个模块或热门博客文章.可能有大量的信息,我根本不知道在哪里看.

提前感谢您提供的任何信息!

Amr*_*agi 61

根据您的第一个问题,您需要在NodeJ中实现一些授权流程.我已经探索并使用了许多NodeJs的API.我更喜欢为企业应用程序使用API​​.

  • 对于身份验证:如果在AngularJS中开发SPA(前端),则为PassportSatellizer.

  • 对于授权:ACL.基于角色的方法和REST API安全性.

其次,您需要NodeJ中的一些实现和开发方法.

  • 简单和我最喜欢的设计模式和NodeJs框架:MVC框架,SailsJs.为其准备启动和模块化架构.从长远来看,代码管理很容易(企业应用程序的最实际要求).易于维护.SailsJs也预先配置了Socket.io,使用它可以在项目中创建实时模块,小部件和聊天小部件.

  • Express您可以使用Express并设计自己的自定义MVC项目结构.这也很受欢迎和强大.您可以在Yeoman找到相同的流行种子项目

  • Redis作为缓存或会话层.使用单独的缓存或会话层总是好的,因为它不会阻止您将应用程序在云上扩展到第n个实例.

  • 您可以使用RedisSocket.io创建实时功能,如地理位置,用户在线(在线/离线),聊天,推送通知等等.

  • ORM:水线.因为它易于查询的方法.它也是SailsJs的内置和默认ORM.您还可以使用Sequelizejs如果不使用SailsJs.我建议使用数据库提供程序提供的本机连接器.

  • 数据库:根据您的要求.Waterline ORM支持PostgreSQL,MySQL,MongoDB等等.

  • 我最喜欢的视图引擎:EJS.无需学习用于开发表示层的新内容.它也是SailsJs的内置和默认视图引擎,这就是为什么我是SailsJs的粉丝.

我想,我已经介绍了在NodeJs中创建企业应用程序的所有重要信息.我不说,上面的软件包是最好的,但是在协作方面,它们最适合任何企业场景.还有其他已知的包,您可以根据自己的要求使用它们.

  • 水线和sails.js +1 (2认同)

zem*_*rco 14

以下是一些入门信息:

希望能让它更容易入手.

  • 奇怪你的答案不包含授权:) (51认同)
  • 断开链接https://github.com/expressjs/express/blob/master/examples/auth/app.js (2认同)