应用程序和API微服务的身份验证服务



我有一个node服务器,用于SaaS应用程序的express。node/express应用程序为公司登录页、注册或用户、身份验证、用户和密码更改提供服务。这都是用node/express构建的。使用passport进行身份验证。

当用户登录时,他会被重定向到使用Reactreact-routeRedux构建的仪表板应用程序(SaaS应用程序本身)。Redux需要调用当前处于同一node/express服务中的node/expressAPI。

这些API还将被使用React Native开发的移动应用程序使用。

我们希望将服务拆分为不同的节点模块,一个用于SaaS应用程序,另一个用于处理公司页面、注册等。这是向微服务架构的转变。

我们的疑问是如何处理用户身份验证。我们需要一个单一的身份验证机制,允许用户使用ReactSaaS应用程序,也为移动应用程序提供服务。

如果用户从网络登录,他可以使用带有API的SaaS应用程序。如果他从移动设备登录,他可以从移动设备使用API。

这是我们拆分服务器的第一种方法,我们希望找到解决身份验证问题的推荐方法。当然,如果我们可以将身份验证服务拆分为另一个微服务,那将非常有趣。

提前感谢您的帮助。

看看以做这类事情为生的身份验证提供商。auth0和Stormpath是两个例子,但还有更多的例子。

使用他们的API来设置应用程序并将其插入express。经过这个过程后,您将更好地了解您可能需要哪些功能,以及您需要在API中实现哪些功能才能使用它们。

在审查结束时,要么使用其中一个服务,要么使用Passport.js.实现所需功能的精简版本

我解决这个特殊问题的一种方法是使用Auth0和JWT。

用户使用Auth0 Lock登录,之后我的网络应用程序在本地存储中存储JWT。这会在每个ajax请求的头中传递给服务器。服务器负责验证每个请求的JWT。为了在React Native应用程序中推出这一功能,React Native锁也可以使用相同的方法。

关于Passport,看起来有JWT-lib,这可能意味着你不需要依赖像Auth0这样的东西。

相关内容

  • 没有找到相关文章