2017-03-08 23 views
0

私はazureでホストされているPHP Webアプリケーションと通信するreact-native-iosアプリケーションを作成しています。私はそれが動作を理解する方法phpサーバと通信するreact-native-iosのauth0認証

:アプリまで

  1. ユーザーがサイン、そして、サーバは、PHPサーバーにJWTのトークンを返し、データベースにトークンを保存し、その後、送信auth0サーバーと通信しますトークンはクライアント装置に戻され、そこでクライアント装置は装置に記憶される。
  2. ユーザーは、サーバーと通信するたびにJWTトークンをヘッダーとして送信する必要があります。
  3. ユーザーがログアウトするたびにトークンが削除され、サインインする際に新しいJWTを受信する必要があります。

ユーザーは、データベースにあるものと一致する資格情報を使用してサインインするか、GoogleまたはFacebookにサインインすることができます。

Google以外の企業にサインインするためのAuth0ですか、それを使ってデータベースにログイン資格情報を持っているアプリにサインインすることはできますか?

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. 反応したネイティブアプリからAuth0 APIreact native lockまで直接連絡します。
  3. Auth0は、選択したプロバイダーとのインターフェイスを確立し、このプロバイダーの認証ページにユーザーをリダイレクトします(必要があり、ユーザーが初めてログインする場合)。
  4. Auth0はJWTを生成し、反応するネイティブアプリに返送します。
  5. あなたの反応しているネイティブアプリは、エンドポイントへのリクエストを発行するときに、このJWTをサーバー(通常はAuthorization HTTPヘッダー)に送信します。
  6. PHPバックエンドは、このJWTが本当に有効かどうかをチェックします。これはAuth0 PHP SDKで行うことができます。
  7. 送信されたJWTが改ざんされていない(不規則に変更されている)場合、バックエンドはこれをユーザーIDとして受け入れ、反応したネイティブアプリによって期待どおりに応答します。

あなたが考えているアプローチの最大の問題は、ログインプロセスがバックエンドサーバーを経由しないことです。 Auth0と通信しているフロントエンドのアプリケーション(ネイティブに反応する)と、選択したアイデンティティプロバイダで発生します。

JWTは、被験者に関する情報(クレーム)を保持するトークンです。これらのトークンは、鍵(public or private)を所有している誰でも検証できます。つまり、このキーを使用すると、トークンを検証でき、不適切に変更されていないことを確認できます。

さらに、データベースの資格情報を使用してAuth0の使用に関する質問に答えるには、使用することができます。 Auth0は、独自のデータベースと統合してユーザーの存在を確認する方法を提供します。これはcustomer user storeと呼ばれます。

ハッピースタディー。

+0

偉大な答え。ありがとうございました! – Larney

関連する問題