2009-06-23 8 views

答えて

2

アカウントテーブルを使用して、関連する外部認証の詳細を保持するAthenticationMethodsテーブルまたはCredentialsテーブルに関連するローカルアカウントデータを保持することをお勧めします。これにより、サイトやその複雑さのすべてがアカウントやログインプロセスに関連していて、サポートしたいと思うさまざまな認証形式をきれいに抽象化することができます。それぞれの認証方法が異なるレベルの複雑さを持っているとすれば、私はさまざまなAPIを見て、共通の類似点を見つけるためにそれらをすべて参照することをお勧めします。さらに重要なのは、それぞれのAPIが必要とするさまざまなデータビットを資格テーブルで処理できるように、それぞれの場所が異なることです。 OpenIDを含めることを忘れないでください!

0

ローカルアカウントまたはユーザーテーブルで2つのフィールドを使用します。 1つは "externalSystemId"(TINYINT)と呼ばれ、もう1つは "externalId"(DOUBLE)です。私はさまざまなexternalSystemId値を定義するコード定数をいくつか持っています。 EXTERNAL_SYSTEM_FACEBOOK = 1、EXTERNAL_SYSTEM_OPENID = 2などです。もちろん、externalIdはそのシステムのユーザーIDです。

私のコードでUserオブジェクトを扱う際に、ユーザーがどのシステムから来ているのかを簡単に判断して、externalSystemIdに基づいてシステムに適したものを認証または表示するための適切なコードメカニズムをロードできます。

対処する予定の数と、システムに関する追加情報が必要かどうかによって、コード定数ではなく外部システムのレコードを格納するデータベーステーブルを使用することをお勧めします。

0

「ログイン」以外の情報、「パスワード」を保存してもよろしいですか?ユーザーがどのログインシステムを使用しているかを保存するための列挙があることをお勧めします。

関連する問題