私は現在、自分のウェブアプリケーションを構築しており、ユーザーがTwitterやFacebookでログインできるようにOAuth機能を組み込みたいと考えていました。私はSinatraでそれを構築しており、OmniAuthの宝石を見てきました。これは仕事にちょうど良いと思われます。私が持っている問題は、Userモデルを再設計することです。OAuthを使用するときのユーザーモデルのデザイン
現在、私は通常のファーストネーム、姓、ユーザー名、電子メール、パスワードを持っていますが、IDとして使用できるユニークなユーザー名を使用しています。また、twitterのようにwww.myapp.com/そのユーザーの情報を見つけるためのユーザー名。私は最初のバージョンでは、ログインとしてtwitterを使用し、その後Facebookに、最後に通常のサインアップを使用することに決めました。私の問題は、人々がTwitterでやっているのと同じように、facebookで同じユーザー名を持つ可能性が高いということです。たとえば、Twitterでサインインして「newuser」IDを取得すると、Facebookからの同じユーザー名を持つ誰かが参加しようとすると問題になります。
OmniAuth gemは、ユーザー情報のハッシュを提供することで機能します。私はMongoを使うつもりです。だから、ユーザーモデルにtwitterとfacebookフィールドを入れてそこにハッシュを入れておくことができます。私はユニークなIDを作成する方法についてはちょっと困っています。両方のサービスが同じユーザー名を持つ人を持つことになるか、または通常のログインが実装されると、誰かがサインアップして、すでにTwitterやFacebookで使用されているユーザー名を取得し、アカウント。
他の人がこれにどのように接近してきたのか本当に興味があります。
もう一度検索を行う必要があります。 http://blog.railsrumble.com/blog/2010/10/08/intridea-omniauthこれはユーザーと権限の分離に関する興味深い記事です。 –