2011-07-23 12 views
2

私たちはWebアプリケーションを構築していますが、今はユーザーを追跡する方法を決定する段階にあります。私たちのデフォルトオプションは、頭痛(ユーザ名の一意性、登録プロセスなど)が多い独自のユーザ登録システムを維持することです。FacebookのユーザーIDを永続的なユーザーIDにします

これに代わる方法として、Facebookのメールアドレスとパスワードを使用してGoogleのシステムにログインするという意味で、ユーザーのFacebook IDを使用することができます。その後、バックエンドはユーザーのFacebook ID(Graph id)を取得し、DBに格納します。ユーザーがアプリケーションに変更/アップロードするデータは、このIDにリンクされます。

質問は、IDを永続的な識別子として信頼し、その周りに複雑なバックエンドを構築できるかどうかです。 Facebookが誰かのIDを変更しないようにするにはどうすればいいですか?

Azure Access Controlのような他のID管理システムは、このIDに依存していますか?

答えて

4

Facebookのplatform policyは、社内使用以外のユーザーIDを使用しないようにします。だから、あなたが/ users /のようなURLのプロフィールページを持っていることを計画していたなら、それはおそらくFacebookのプライバシーの期待に違反するでしょう。 Usersテーブルをサロゲート主キーで作成し、プライマリ以外の列としてそのFacebookのIDを含む方がよいでしょう。

さらに、古いFacebookアカウントへのアクセスが失われ、自分のアカウントのアカウントを新しいFacebookのIDと関連付けたい場合があります。 FacebookのIDを複数のテーブルの外部キーとして使用すると、古いFacebookのIDにアプリケーションのデータが不必要に巻き込まれてしまいます。

+0

「代理プライマリキーを使用してUsersテーブルを作成する」と言ったことは、あまり得意ではありませんでした。たとえば、Userテーブルでプライマリキーは生成されたGUIDに渡されますユーザーはFacebookのアカウントで何か問題が発生した場合にユーザーを特定できますか?彼がGUIDを忘れた場合はどうなりますか? (入力しなかったために電子メールを送信することはできません。実際には通常のユーザー管理システムですが、ユーザー名の代わりにGUIDが生成されます。 –

+0

これは良い点です。 私は、あるユーザのfacebook idがfacebook自体の外に理由で変わるかもしれない例を挙げようとしていましたが、あなたのFacebookアカウントへのアクセスが失われてしまったという仮説的な状況をサポートしています。 。 – tuxedo25

+0

注:Facebook経由でユーザーが認証されると、そのユーザーに電子メールの許可を要求できます。もちろん、Facebookの統合に加えて、通常のユーザー名とパスワードを設定することもできます。 – tuxedo25

関連する問題