我有一个node
服务器,带有针对SaaS应用程序的express。 node
/ express
应用程序为公司登录页面,注册或用户,身份验证,用户和密码更改提供服务。这都是使用node
/ expr e
ss构建的。使用passport
进行身份验证。
当用户登录时,他将被重定向到使用React
,react-route
和Redux
构建的仪表板应用程序(SaaS应用程序本身)。 Redux
需要调用node
/ express
API,该API目前位于相同的node
/ express
服务中。
移动应用也将使用React Native
开发API。
我们希望将服务拆分为不同的节点模块,一个用于SaaS应用程序,另一个用于处理公司页面,注册等。向微服务架构迈进。
我们怀疑如何处理用户身份验证。我们需要一种单一的身份验证机制,允许用户使用React
SaaS应用程序,并且还可以为移动应用程序提供服务。
如果用户从网上登录,他可以将SaaS应用程序与API一起使用。如果他是从手机上登录的,他可以使用移动设备上的API。
这是我们分割服务器的第一种方法,并希望找到解决身份验证问题的推荐方法。当然,如果我们可以将身份验证服务拆分为另一个非常有趣的微服务。
提前感谢您的帮助。
答案 0 :(得分:2)
看看以这种方式谋生的身份验证提供程序。 auth0和Stormpath是两个例子,但还有更多。
使用他们的API设置应用并将其插入快递。完成此过程后,您将更好地了解可能需要的功能以及在API中实现的功能。
在审核结束时,要么使用其中一项服务,要么使用Passport.js实现所需功能的缩减版本。
答案 1 :(得分:1)
我解决这个问题的一种方法是使用Auth0和JWT。
用户使用Auth0 Lock登录,之后我的网络应用会将JWT存储在本地存储中。这会在每个ajax请求的标头中传递给服务器。服务器负责在每个请求上验证JWT。为了推出React Native应用程序,可以使用react-native-lock相同的方法。
特别针对Passport,它看起来有JWT libs,这可能意味着你不需要依赖像Auth0这样的东西。