Node + Express:根据页面和用户types的多种authentication策略
我是新来的节点,我想开始build立以下应用程序:
该应用程序应该是某些企业提供的服务目录。 用户应该能够与列出的服务提供商一起启动和跟踪stream程的状态。
所以有四个数据库:
- pipe理员
- 用户
- 企业
- stream程
和三种types的用户:
- pipe理员=我(身份validation:用户名+密码)
- 商业(authentication:用户名+密码)
- 用户(authentication:脸书)
pipe理员应该拥有对所有数据库的CRUD权限。 企业只能对他们自己的configuration文件(提供服务)执行CRUD并更新相关stream程。 用户可以对正在执行的进程执行CRUD。
我读了很多npm模块,比如everyauth,mongoose-auth,passport,但是我很难理解他们与MongoDB等数据库的关系,尤其是当我有三种不同的权限和四种数据库的用户时。 我不知道页面可以检查三种不同types的cookies。
我应该创build三个不同的login和regestration系统? 如果是的话,怎么样?
有人可以帮助我…不是与代码..但有一个概念或相关的教程。
护照需要以下用户名和密码configuration:
我不明白的是:
- 数据库在哪里?
- 我如何连接一个我可以访问的mongodb数据库?
- app.get()应该如何将用户redirect到相应的login页面?
- 我怎样才能实现这三个不同的login页面(adminLogin,businessLogin,userLogin)与三个相应的数据库(pipe理,业务,用户)?
- 我如何检查在三个不同的主页(adminHome,businessHome,userHome)上是否有正确types的Cookie?
我的build议是:
- 使用“快递”。
- 使用“护照”。 需要注意的是,“mongoose-auth”build立在“everyauth”之上,运行良好,但我喜欢“护照”的“策略”概念的灵活性,“明示”整合更好。 您可以使用任何数据库/方法(如LDAP)与Passport本地策略来存储凭据,这在护照教程中进行了解释。 此外,护照Facebook的战略已经定义并准备使用。
- 如果可能的话,为这三个用户组中的每一个分别设置快速路由(URL)。 在相同的路由上pipe理多个身份validation策略会变得非常复杂且不可靠。
- 企业或用户不太可能需要直接访问数据库。 因此数据库将只需要一个Web服务器到数据库服务器的连接。 因此,如果您的Web服务器是安全的,您可能根本不需要数据库身份validation,即使您确实需要它,该连接也仅适用于pipe理员。 但是,您应该阅读这些Mongo安全build议 ,以了解潜在的安全问题。
- 在Node.js Web-Server中确定用户angular色并授予API访问权限的正确方法是什么?
- 如何使用访问令牌在通过twitter.js护照login后validation用户
- 无法使用节点请求模块进行基本的HTTPvalidation
- 如何在服务器身份validation后使用JSON Web令牌提供前端?
- Node.js的身份validation解决scheme
- SailsJS + PassportJS(sails-generate-auth) – 无法login用户
- 用户帐户激活,电子邮件确认和Passport / Node.Js邀请
- Express服务静态文件的基本authentication
- Cloud9 IDE上的Nodejs中的Redis: