【问题标题】:Node+Express: Multiple authentication strategies according to page and user typeNode+Express:根据页面和用户类型的多种认证策略
【发布时间】:2013-01-08 18:42:27
【问题描述】:

我是 node 新手,我想开始构建以下应用程序:

应用应该是某些企业提供的服务目录。用户应该能够与列出的服务提供商一起启动和跟踪进程的状态。

所以有四个数据库:

  1. 管理员
  2. 用户
  3. 企业
  4. 流程

还有三类用户:

  1. Admin = Me(身份验证:用户名+密码)
  2. 业务(认证:用户名+密码)
  3. 用户(身份验证:facebook)

管理员应该拥有所有数据库的 CRUD 权限。企业只能对自己的配置文件(提供的服务)执行 CRUD 并更新相关流程。用户可以对其正在进行的进程执行 CRUD。

我阅读了很多关于诸如everyauth、mongoose-auth、passport 等npm 模块的信息,但我很难理解它们与诸如mongodb 之类的数据库的关系,尤其是当我拥有三种具有三种不同权限的用户和四个数据库时。我不知道页面如何检查三种不同类型的 cookie。

我应该创建三个不同的登录和注册系统吗?如果是,怎么做?

有人可以帮我吗..不是代码..而是一个概念或相关教程。


Passport 需要 following 来配置用户名和密码:

我无法理解的是:

  1. 生成的数据库在哪里?
  2. 如何连接我以后可以访问的 mongodb 数据库?
  3. app.get() 应该如何将用户重定向到相应的登录页面?
  4. 如何为三个不同的登录页面(adminLogin、businessLogin、userLogin)和三个对应的数据库(admin、business、user)实现这个?
  5. 如何检查三个不同主页(adminHome、businessHome、userHome)上是否提供了正确类型的 cookie?

【问题讨论】:

    标签: node.js mongodb authentication login express


    【解决方案1】:

    我的建议:

    1. 使用“快递”。
    2. 使用“护照”。请注意,“mongoose-auth”建立在“everyauth”之上,它们可以正常工作,但我喜欢“passport”中“strategies”概念的灵活性,并且“express”集成更好。您可以使用任何数据库/方法(如 LDAP)和 Passport Local 策略来存储凭据,这在护照教程中进行了解释。此外,Passport Facebook 策略已经定义并可以使用。
    3. 如果可能,请为三个用户组中的每一个设置单独的快速路由 (URL)。在同一条路由上管理多个身份验证策略看似复杂且不可靠。
    4. 企业或用户不太可能需要直接访问数据库。因此,数据库只需要一个网络服务器到数据库服务器的连接。因此,如果您的 Web 服务器是安全的,您可能根本不需要数据库身份验证,即使您确实需要它,该连接也仅供管理员使用。但是,您应该阅读这些Mongo security recommendations 以了解潜在的安全问题。

    【讨论】:

      猜你喜欢
      • 2016-01-07
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      • 1970-01-01
      相关资源
      最近更新 更多