为应用程序和 API 微服务验证服务

Authenticate service for both applications and API microservices

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

完成身份验证

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

API 也将由使用 React Native 开发的移动应用程序使用。

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

我们的疑惑是如何处理用户认证。我们需要一个单一的身份验证机制,该机制将允许用户使用 React SaaS 应用程序,并为移动应用程序提供服务。

如果用户从 Web 登录,他可以使用带有 API 的 SaaS 应用程序。如果他是从手机登录的,他可以从手机使用API。

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

在此先感谢您的帮助。

看看以从事此类工作为生的身份验证提供商。 auth0 and Stormpath 是两个例子,但还有更多。

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

在审核结束时,使用其中一项服务或使用 Passport.js 实施所需功能的简化版本。

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

用户使用Auth0 Lock and after that my web app stores a JWT in local storage. This gets passed in the header of each ajax request to the server. The server is responsible for validating the JWT on each request. In order to roll this out for a React Native app, the same approach can be used with the react-native-lock登录。

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