2017-02-14 97 views
0

我有一個node服務器,其中包含Express用於SaaS應用程序。 node/express應用程序可用於公司登錄頁面,註冊或用戶,身份驗證,用戶和密碼更改。這全是用node/expr e ss構建的。身份驗證使用passport完成。對應用程序和API微服務進行身份驗證服務

當用戶登錄時,他被重定向到使用Reactreact-routeRedux構建的儀表板應用程序(SaaS應用程序本身)。 Redux需要調用node/express API,即當前處於相同的node/express服務。

這些API也將被移動應用程序使用,使用React Native進行開發。

我們希望將服務拆分成不同的節點模塊,一個用於SaaS應用程序,另一個用於處理公司頁面,註冊等。向微服務架構邁進。

我們的疑問是如何處理用戶認證。我們需要一個單一的認證機制,允許用戶使用React SaaS應用程序,也可以爲移動應用程序提供服務。

如果用戶從網絡登錄,他可以使用帶有API的SaaS應用程序。如果他從移動設備登錄,他可以使用移動設備上的API。

這是我們第一種分離服務器的方法,希望找出解決認證問題的推薦方法。當然,如果我們能夠將認證服務作爲另一個非常有趣的微服務來分解。

在此先感謝您的幫助。

+0

您是否考慮過使用智威湯遜? – patrick

+0

尚未意識到。請指教。 – Mendes

回答

2

看看做這種事情的身份驗證提供商的生活。 auth0Stormpath是兩個例子,但還有更多。

使用他們的API來設置應用程序並將其插入到express中。在完成這個過程之後,您將更好地瞭解您可能需要哪些功能,以及您需要在API中實現哪些功能才能使用它們。

在審查結束時,請使用其中一項服務,或者使用Passport.js實現您需要的功能的削減版本。

+0

認爲Auth0解決了所有身份驗證問題,但我無法瞭解如何對多個系統進行身份驗證。我應該存儲一個JWT並在調用可用的應用程序時傳遞 - 就像SaaS應用程序一樣? – Mendes

1

我解決這個問題的一種方法是使用Auth0和智威湯遜。

用戶使用Auth0 Lock登錄,之後我的web應用程序將JWT存儲在本地存儲中。這會在每個ajax請求的頭部傳遞給服務器。服務器負責驗證每個請求上的JWT。爲了推出一個React Native應用程序,同樣的方法可以用於react-native-lock

在具體到護照看起來有JWT libs這可能意味着你不需要依賴像Auth0的東西。

相關問題