1

ユーザー名/パスワード、Twitter、または Facebook を使用してログインできる一般向けの Web サイトを作成しました。

初めて Twitter にログインすると (たとえば)、Twitter のスクリーン ネームと一致するニックネームを持つユーザーがデータベースに作成されます。このニックネームは常に一意であってほしいです。

問題は、場合によっては、そのニックネームを持つユーザーが既に存在するため、ユーザーを追加できないことです。この問題に対して受け入れられているアプローチについては確信が持てません。これまでに確認できる唯一の解決策は、ユーザーにニックネームを上書きするように依頼することですが、これはあまりエレガントではないようです。

ニックネームが一意である必要がある理由は、コードの問題ではなく、インターフェイスの問題です。たとえば、フォーラムがあり、各ユーザーをニックネームで一意に識別したいと考えています。

この問題に対処するために誰かが提案できる他の方法はありますか?


編集:いくつかの返信のリクエストで、例を明確にします:

私の Web サイトのメンバーである Joe Bloggs という名前のユーザーがいるとします。彼は Twitter や Facebook のメンバーではありません。私のサイトでの彼のニックネームは JoeBloggs です。

その後、別の Joe Bloggs がやってきて、彼の Twitter アカウントでサインインしようとしています。彼の Twitter 名は JoeBloggs であるため、彼が Twitter でサインインすると、私のシステムは彼のニックネームを自動的に JoeBloggs に設定しようとします。ただし、このニックネームは既に存在します。このようなニックネームが重複する場合の通常またはベスト プラクティスは何ですか? 私が考えることができる唯一のことは、ユーザーに別の一意のニックネームを指定するように求めることです (私のサイトに表示するためだけに)。

私が尋ねる理由は、これは Facebook、Twitter、Yahoo 経由でログインできるサイトに共通の問題であるに違いないということです。これらの Web サイトから返される名前には重複があるはずです。

4

2 に答える 2

0

Twitter API を使用して、彼らが実際に彼らが言う Twitter ID であることを確認し、Twitter アカウントがない場合は、他の方法 (Google+、Facebook、LinkedIn、古い学校のユーザー名とパスワード) を認証できるようにしてもらえますか? ユーザーが所有していない Twitter ID でログインできるようにすることは、苦痛の世界を求めているように思えます。

于 2012-06-05T16:08:36.663 に答える
0

たぶん、データベース自体を変更してみることができます-「nickOrigin」のようなフィールドを取得し、「[yourSite]」、「twitter」などの値を許可し、同じニックネームとニックオリジンを持つエントリがない場合にのみ新しいエントリを許可します. [yourSite] の nickOrigin を持つように既存のユーザーを変更するクエリを実行します。後方互換性がある必要があります。または、少なくともそのように想像します :)

于 2012-06-26T11:46:59.437 に答える