1

ユーザーがアプリから任意のプロバイダー(Facebook、Googleなど)からログインできるようにし、サーバーでアカウントを作成できるようにしたい。私が理解したいのは、これを行うユーザーモデルを構築するための最良の方法です。

例えば、

ユーザーがFacebookを使用してログインすると、新しいユーザーレコードが作成され、アカウントがFacebookアカウントであることを示すフラグがレコードに表示されます。同じユーザーが自分のサーバーで標準アカウントを作成し、Facebookを使用して再度ログインした場合、これをどのように処理すればよいですか?これらの2つのアカウントを相互にマージ/関連付けるか、2つの異なるレコードとして扱うのがベストプラクティスですか?

4

2 に答える 2

1

現在、私は同じことに取り組んでいます。これらのルールを使用します。

  • メールを確認する。ユーザーを識別するための最良の方法です。
  • 登録に成功した後、特別な長時間 Cookie を設定します。後で、ユーザーにアカウントの統合を依頼できます。
  • ユーザー名、本名、誕生日などは、比較する追加のパラメーターとして使用できます。

スキームについて: users(id, username, email) とuser_data(id, user_id, email, service_id, service_name, service_type, is_active) というテーブルを作成します。service_idはプロバイダー固有の識別子、service_typeはプロバイダー名 (google/facebook/etc)、service_nameはプロバイダーのサイトからの displayName (. とは異なる場合がありuserますusername) です。service_id + service_type一意である必要があります。

于 2012-11-19T18:40:32.080 に答える
0

それらが同じアカウントであるかどうかを知る唯一の方法は、何らかの識別子を使用することです。FBログインからメールを返送して、その情報をテーブルのメールフィールドに保存するようにリクエストできます。その後、そのメールでアカウントを作成しようとした場合は、既にアカウントを持っていることを通知できます。

そうでなければ、彼らが同じ人であるかどうかをあなたがどのように知ることができるかわかりません。

于 2012-11-19T18:12:44.087 に答える