ライブラリOmniAuth
が最初にそうしていることを理解しようとしています。まず、「マルチプロバイダ認証」を正しく理解しているかどうかを確認します。これは、あなたのアプリがユーザーとしてあなたを認証するために、Facebookのどちらか、またはGoogleをさまざまな種類のプロバイダとして使用できることを意味しますか?したがって、あなたのFacebookのID/PWまたはあなたのGoogleのID/PWを提供することによって、あなたのアプリにログインすることができます両方のあなたのアプリの下で同じアカウントに連れて行く?マルチプロバイダ認証の基本用語
0
A
答えて
1
私はそれがちょっと遅いと知っていますが、はい、あなたは正しいです。 OmniAuth
は、他の認証プロバイダを利用してユーザーが登録して認証するための、より多くのオプションを提供するためのものです。単純な状況では、プロセスは次のように記述できます。
- プロバイダサイトでアプリを登録します。彼らはあなたが誰であるかを知っています。通常はリダイレクトURLが必要になります。リダイレクトURLは、後で認証応答を送信する場所です。
- あなたはapp_idとapp_secretを取得します。
- 「サインインして...」をクリックすると、認証URLに移動します(このリンクには、あなたのapp_idとリダイレクトURLがパラメタとして表示されることがよくあります)。
- このアプリには許可されていますこれらの事。プロバイダが認証コードを送り返します。
- アプリは自信を持ってプロバイダと話をすることができます。ちょっとプロバイダ、私はこのアプリ(ショーapp_idとapp_secret)であり、このユーザーは私(認証コードを表示)を許可しています。プロバイダは成功認証データ(トークン、
uid
などの情報を含む)を返します。 - サーバー側のフローでは、
uid
をチェックして、システム内のすべてのユーザーと一致するかどうかを確認できます。user
にリンクしているauth_providers
の表)。そうであれば、そのユーザーにサインインします(サインアップしていない場合)。
ほとんどの場合、ユーザーは1つの認証プロバイダ(FacebookやGoogleなど)のみを使用したいと考えています。両方を使用すると、2つの別々のアカウントが作成されます。もちろん、auth
データからのメール返信がすでに使用されているかどうかを検出するなどの方法を見つけることはできますが、信頼できないのは、ユーザーがGoogleとFacebookの両方に同じメールを登録した場合のみです。ユーザーが同時に複数のプロバイダにサインインできるようにする場合は、それらを重複排除するソリューションを見つけることはあなた次第です。
関連する問題
- 1. 基本認証
- 2. 基本認証
- 3. 基本アクセス認証
- 4. 基本認証エラー
- 5. チャレンジログイン、基本認証
- 6. Retrofit +基本認証
- 7. ルーメンでの基本認証
- 8. Alamofireの基本認証ヘッダー
- 9. GowallaのHTTP基本認証?
- 10. OpenLayersの基本認証3
- 11. Webサービスの基本認証
- 12. WCFの基本認証
- 13. Padrinoの基本ユーザ認証
- 14. クッキー認証を使用するプロジェクトでの基本認証
- 15. Jetty Embedded:CORS +基本認証(ConstraintSecurityHandler)を使用
- 16. 基本認証を使用するOSMF
- 17. 基本認証を使用したHTTP
- 18. API用laravel5.1基本的なhttp認証
- 19. JavaScriptを使用した基本認証
- 20. クロスドメインajaxリクエスト基本認証
- 21. CORSとHTTP基本認証
- 22. HTTP基本認証メカニズム
- 23. 春ブーツ基本認証
- 24. 基本HTTP認証ゴー
- 25. C#SSL基本アクセス認証
- 26. Cakephp 2.0と基本認証
- 27. 基本認証付きSupertest
- 28. amazon beanstalk tomcat基本認証
- 29. JQueryクロスドメイン基本認証コール
- 30. Rest Webサービス基本認証
説明をいただきありがとうございますが、手順4では、プロバイダが認証コードを送信する必要があるのはなぜですか?ユーザーがサインインした後でuidやその他の情報を送信できないのはなぜですか?プロバイダが認証コードを私のアプリケーションに送信し、次に私のappが私のapp_idとapp_secretと一緒にそれをプロバイダに送り返すことが繰り返されているようです。 – stackjlei
上記で説明したのは、OAuth 2プロトコルの認可付与タイプです。 Implicit Grant Typeは、記述したとおりに機能します。違いはあなたのapp_secretについてです。 **認可付与タイプ**は、アプリの秘密情報(Webサーバーなど)を保護する方法があればお勧めします。認可プロセスには、あなたの秘密の提供は含まれません。あなたのサーバーが作る2度目のトリップだけが秘密裏にあります。ダブルチェックのため、より安全です。このようにして得られたアクセストークンは長く生存している(例えば60日)。 ** Implicit Grant Type **は通常サーバーなしのSPA用です。トークンは短期間(2時間)です – harrisnguyen
手順3でアプリIDとアプリの秘密情報を同時に送信すると何が問題になりますか? – stackjlei