4

私は自分のサイトにopenIDを実装しようとしており、PlaxoやSOに関する質問などを読んでいます。現在、ライブラリを使用してユーザーを認証できます。しかし、一部のプロバイダーは

アカウントに多対 1 の関係を持つ Plaxo に似たシステムを実装しようとしています。しかし、上記のような openID url を使用してユーザーを区別するにはどうすればよいでしょうか? SOでもGoogleとGoogleプロファイルが別々にあることがわかります。では、ユーザーが自分のユーザー名を提供しない場合、または一意の openID と言うべき場合に、ユーザーをどのように識別しますか?

4

2 に答える 2

3

OpenID は、プロバイダーでユーザーの「ユーザー名」を公開するようには設計されていません。ID として機能する検証済みの URL が提供されますが、その URL は不透明な文字列として扱う必要があります。

それが必要な場合は、ユーザーに手動でプロンプトを表示するか、属性交換を使用する必要があります (どちらも安全ではありません)。

于 2011-02-04T22:29:32.820 に答える
1

openid 応答が返されると、各アカウントに固有のパラメーター「openid.identity」が存在します。これは非常に長いセミランダム文字列であるため、表示には適していません。

https://www.google.com/accounts/o8/id?id=AItOawnlHWwIas84v37...

これらの属性が提供されている場合は、「ニックネーム」フィールドまたは電子メール アドレスのローカル部分に基づいて、表示可能な適切なユーザー名の生成を試みることができます。そして最後の可能性として、ユーザーに尋ねてください。

于 2011-02-04T22:37:52.023 に答える