OmniAuth との統合を検討している Rails アプリがいくつかありますが、最初に把握したい概念上の問題があります。次のシナリオを検討してください。
- アプリケーション Foo は、Twitter と Facebook を介した OmniAuth ログインをサポートしています。
- ジョーはあなたのサイトにアクセスし、彼の Twitter アカウントを介してログインします。これにより、Foo に新しいユーザーが作成され、この新しい Twitter 承認に関連付けられます。
- Joe は Foo からログアウトし、サイトのことを 6 か月間忘れます。
- Joe は、以前に Twitter でログインしたことを思い出さずに Foo に戻ります。
- Joe は Facebook でログインします。彼は元の Twitter 認証でまだログインしていないため、彼が実際に同じ Joe であることを検出する方法がなく、新しいアカウントが作成されます。
- ジョーは自分の古いアカウントを発見し、以前のコンテンツがこの古いアカウントに関連付けられていること、および Twitter と Facebook を交互にログインできないことに不満を感じています。
Twitter は Foo に電子メール アドレスを提供しないため、2 人の Joe が同じ Joe であることを検出するために使用する汎用識別子はありません。ユーザーの電子メール アドレスを提供するプロバイダーのみをサポートすることもできますが、ユーザーが別のプロバイダーで別の電子メール アドレスを使用して登録している場合、これは役に立ちません。
私が考えることができる他の唯一の解決策は、ユーザーに 2 つの既存のアカウントをマージする方法を提供することです。これは、OmniAuth を使用する場合に他のすべてが比較的簡単であることに比べて、大きな頭痛の種です。これが唯一の解決策である場合、これがどのように行われるかの例を示すガイド/チュートリアルに出くわした人はいますか? OmniAuth の人気を考えると、この問題があまり注目されていないことに驚いています。
ありがとう!