我的情况如下:
出于我的问题的目的,我们假设我有两个不同的客户端 - 两个网络应用程序。在这种情况下,谁应该负责社会认证,会话,cookie等?用户数据库应该在所有客户端之间共享,但我觉得身份验证和API应该是两个独立的服务。
在这种情况下,最常见的方法是什么?
客户端将使用AngularJS构建,REST API服务使用Node.js,Express,MongoDB,Mongoose以及最终构建的Passport.js构建。
由于
答案 0 :(得分:1)
但我觉得身份验证和API应该是两个独立的服务。
如果您不得不问,您不需要2个单独的服务。 (服务意味着独立的网络守护进程/表达应用程序)
从单个快递应用中的2个独立模块开始。您可以使用auth.js
模块使用护照来处理身份验证和会话问题,然后使用API中每个实体的一个模块文件。如果您的auth.js文件中需要超过1000行代码,考虑到护照正在为您完成大部分艰苦的工作,那么就会出现问题。退后一步,要求进行代码审查。
如果您希望每个2个网络应用程序都拥有自己的Express服务器,只需将auth.js
模块放入其自己的可共享npm模块中,并从每个Web应用程序中获取它。
将事情分解成微服务是为了大规模的大型团队项目。在最初几年坚持使用一台简单的快速服务器(或者对于不支持快速增长的初创公司的项目永远坚持下去)。