2009-08-25 10 views
5

OpenIdの新機能です。認証が完了するとOpenIdの使い方を理解するのに少し問題があります。openId - userテーブルを使用してサイトを開発するベストプラクティス?

私は新しいサイトを作成していますが、openId認証が機能する上で問題はありませんでした。しかし、私はユーザーが一度ログインするとどのようにユーザー関連のデータを保存する必要があるのか​​分かりません。

openIdの前に、自分自身の登録プロセス、固有のUserId(整数)を持つUserTable、あるユーザの活動に関連するデータは、そのユーザを識別するUserId列を有するだけである。

テーブルでOpenId IDを使用するべきですか?本当にシンプルなOpenId - > UserIdテーブルを作成して、すべてのログインがマップされ、以前に保存されたデータを持つべきですか?また、ユーザーが異なるOpenIdプロバイダを使用する場合はどうなりますか?

答えて

6

私は、1対多にすることが理にかなっているからといって、OpenIDへのユーザーIDを持っていることをお勧めします。アカウントにバインドされているIDが2つ以上あるようにするのがよい方法です。ユーザーのログイン情報を保存する - - ユーザプロファイル情報

2)資格の保存

1)ユーザー:

+0

だから私は ...新しい行を作成しない場合は、ユーザーが認証されたとき、私は私のユーザーテーブルを確認する必要がありますし、OpenIDのが存在するかどうかを確認することを推測しかし、どのように(安全な方法では)人々を許可しません複数のOpenIdを既存のユーザーIDにマップするには? – Bjorn

+0

実際、ユーザーに未知のOpenIDが付いている場合は、新しいアカウントを作成するか、既存のアカウントにバインドするかどうかを尋ねるのが最善です(後者の場合、ユーザーは他のOpenID)。 OpenIDを安全に管理する方法については、多かれ少なかれUIのことです。解決策の1つは、成功した 'OpenID'ラウンドトリップ(または迷惑なアイデンティティアサーション)の後に確認を求めることです。もう1つは、ラウンドトリップに特別なナンスまたはクッキーを使用することです。あなたが思いつくものは何でも。 –

3

は、私は私のサイトで2つのテーブルを使用します。

2

Yahoo! OpenID FAQ、http://developer.yahoo.com/openid/faq.htmlは、WebサイトにOpenIDを追加する詳細については、Joseph Smarr氏がPlaxoで作成したレシピにリンクしていますそれはすでに、ユーザーがいるDBテーブルの構造を含む:

http://www.plaxo.com/api/openid_recipe

これはすでに のアカウントを持つユーザーを持っているウェブサイトではOpenID 消費者側のサポートを実装するためのステップバイステップのチュートリアルガイドです。新規ユーザーがOpenID URLを使用してサイトの アカウントに簡単にサインアップできるようにする方法と、既存の ユーザーがOpenIDを添付してログインできるようにする方法について説明します。

関連する問題