DeviseとOAuthを使用して、ソーシャルログイン(Facebook、Twitterなど)をRailsアプリと統合しました。リクエストとコールバックはすべてうまく機能し、ユーザーはアプリを認証して効率的にログインできます。
私の問題はこれです:
Deviseを使用すると、私のサイトのユーザー名としてユーザーの電子メールアドレスが使用されます。したがって、ユーザーがソーシャルサイトを介して初めてログインするときはいつでも、ユーザーがログインしたソーシャルサイトを示すために、アカウントの「接続」レコードが保存されます。私のサイトにまだアカウントを持っていない場合は、コールバック配列のメールアドレスを使用してアカウントが作成されます。接続は、後で使用するために返されたトークンとシークレット(FB投稿、ツイートなど)とともに保存されます。
残念ながら、Twitterはメールアドレスを提供していません。これを回避するために、Twitterでログインする初めてのユーザーには、アカウントを作成できるようにメールアドレスを入力するようにお願いしています。しかし、彼らが私のサイトにすでにアカウントを持っている場合、どうしたらよいかわかりません。一致するメールアドレスが与えられていないため、すでにそうなっているかどうかを確認できません。これにより、最終的にユーザーが複数のアカウントを持つ可能性があります。
それで、私は少し途方に暮れています、そして誰かが何か提案があれば、それは非常に役に立ちます。ありがとう!:)