2017-03-08 57 views
0

我正在創建一個react-native-ios應用程序,該應用程序與在azure上託管的php web應用程序進行通信。auth0 authentication for react-native-ios與php服務器通信

我怎麼去理解它的工作原理:

  1. 用戶登錄到應用程序,服務器auth0服務器,然後返回一個JWT令牌到PHP服務器進行通信,節省令牌到數據庫,然後發送令牌返回到客戶端設備,然後存儲在設備上。
  2. 無論何時與服務器通信,用戶都必須將JWT令牌作爲標頭髮送。
  3. 每當用戶註銷時,令牌都將被刪除,並且在登錄時必須收到新的JWT。

用戶可以通過使用與數據庫上的內容匹配的憑據登錄或使用Google或Facebook登錄。

或者是Auth0只是爲了與Google等企業一起登錄,或者我可以用它登錄到我的應用程序,該應用程序也具有數據庫上的登錄憑據嗎?

我發現 npm react-native-lock-ios但它不工作,我上面描述的方式。

綜上所述,我該如何解決這個問題,這正是我上面解釋的正確答案?

回答

2

這裏的主要問題是您不知道如何使用JWT。我建議您深入瞭解how this technology works以及如何Auth0 can help you。但是,總的來說,這是驗證你的目標必須是工作流程:

  1. 您的用戶會選擇很多identity providers supported by Auth0之一(例如Facebook,Twitter,LinkedIn,SAML,WS盟員等)。
  2. 您的反應原生應用程序將通過react native lock直接與Auth0 API進行通信。
  3. Auth0將與選定的提供者進行接口,並將用戶重定向到此提供者中的授權頁面(在需要的情況下並且這是用戶第一次登錄時)。
  4. Auth0將生成一個JWT併發送回您的原始應用程序。
  5. 您的反應本機應用程序會發送此JWT到服務器(通常在Authorization HTTP標頭)發出請求到您的端點。
  6. 您的PHP後端將檢查此JWT是否真正有效。這可以通過Auth0 PHP SDK完成。
  7. 如果發送的JWT沒有被篡改(不規則地更改),您的後端將接受它作爲用戶標識符,並按照您的反應原生應用程序的預期迴應請求。

正如您所見,您認爲您要遵循的方法中最大的問題是登錄過程不會通過您的後端服務器。它發生在您的前端應用程序(反應本機)與Auth0和選擇的身份提供程序進行通信。

智威湯遜是關於某個主題的信息(權利要求)的標記。具有密鑰的任何人都可以驗證這些令牌(public or private)。也就是說,有了這個密鑰,您就可以驗證令牌,並確信它沒有被錯誤地更改。

此外,要回答關於Auth0與數據庫憑據一起使用的問題,您可以打賭您可以使用它。 Auth0提供了與自己的數據庫集成以檢查用戶存在的方法。這被稱爲customer user store

快樂學習。

+0

很棒的回答。謝謝! – Larney