谁负责多客户端MEAN堆栈中的身份验证?

时间:2015-04-15 14:10:05

标签: node.js mongodb rest express

我的情况如下:

  • 我有一个使用MongoDB的REST API Node.js服务器,它将向客户端提供数据。
  • 我有一个Web客户端,它将从API服务获取数据并提供社交身份验证。

出于我的问题的目的,我们假设我有两个不同的客户端 - 两个网络应用程序。在这种情况下,谁应该负责社会认证,会话,cookie等?用户数据库应该在所有客户端之间共享,但我觉得身份验证和API应该是两个独立的服务。

在这种情况下,最常见的方法是什么?

客户端将使用AngularJS构建,REST API服务使用Node.js,Express,MongoDB,Mongoose以及最终构建的Passport.js构建。

由于

1 个答案:

答案 0 :(得分:1)

  

但我觉得身份验证和API应该是两个独立的服务。

如果您不得不问,您不需要2个单独的服务。 (服务意味着独立的网络守护进程/表达应用程序)

从单个快递应用中的2个独立模块开始。您可以使用auth.js模块使用护照来处理身份验证和会话问题,然后使用API​​中每个实体的一个模块文件。如果您的auth.js文件中需要超过1000行代码,考虑到护照正在为您完成大部分艰苦的工作,那么就会出现问题。退后一步,要求进行代码审查。

如果您希望每个2个网络应用程序都拥有自己的Express服务器,只需将auth.js模块放入其自己的可共享npm模块中,并从每个Web应用程序中获取它。

将事情分解成微服务是为了大规模的大型团队项目。在最初几年坚持使用一台简单的快速服务器(或者对于不支持快速增长的初创公司的项目永远坚持下去)。