5

これらのマルチプロバイダー認証フレームワーク Opauth または Hybridauth のいずれかを使用しようとしています (どちらが最適かはわかりませんが、2 番目の方が少し好みでした)。結果として、複数のアカウントを管理する必要があります。

実際、私はすでに自分のアカウント管理 (ログイン + パスワード + メール) を持っており、昨年は facebook ユーザーがいました。次に、Twitter アカウント、リンクされたアカウントなどを処理する必要があります... 質問は簡単です: ユーザー名を管理するにはどうすればよいですか? たとえば、ジョンは私のサイトでアカウントを作成します。したがって、「John」のログイン/ユーザー名が使用されます。しかし、Facebook からの別の John と Twitter からの別の John が到着した場合、私はどうすればよいでしょうか? Stackoverflow (または他の場所) では、どのような慣習がありますか?

ジョンが別のジョンに代わって書いてほしくありません。今日、私自身のシステムで、ログイン (ユーザー名) が一意であることを確認しています。そうでない場合、ユーザーを拒否します。でも今 ?

メールは確認できると思っていたのですが… ツイッターは教えてくれないので、メールアドレスはキーにならないことを知りました。

私が十分に明確であることを願っています:)

よろしく

4

2 に答える 2

0

あなたが言うように、さまざまなソースからユーザー名を取得して保存することはできません。ここでstackoverflowでどのように行われるかはわかりませんが、名前を登録しようとするとオプションなので、おそらく一意のキーではありません。ここではtwitterでログインする方法が見当たらないので、メールがユニークキーなのだろう。

私はあなたの質問に答えようとしますが、Facebook API しか使用していないので、これは他の人ではできないかもしれません。各 API は、データベースに保存できるものを提供し、後でそれを使用して API に対してユーザーを識別できると思います。

ユーザーが facebook (または gmail、twitter...) に登録できるようにする場合は、次のアプローチを使用できます (他にもいくつかあると思います)。

  1. 彼らは常に facebook (または twitter、gmail...) でログインします。API によって提供されるキーと収集できるその他の有用な情報を使用して、データベース内に記録を保存します。あなたが言ったように、各 API が提供するものは異なるため、ユーザーに優れたエクスペリエンスを提供するために本当に必要なものは何かを事前に考える必要があります。ユーザーの名前は必要ですか? 年?API によって提供されるよりも多くのデータが必要な場合は、次のアプローチにジャンプするか、事前に取得して編集可能にする必要があります。ここでは、ユーザーにパスワードを要求しないので、ログイン フォームではなく facebook でのみログインできます。ユーザーが facebook (または twitter、gmail) で再度認証しようとすると、どのキーを探して認証する必要があるかがわかります。あなたの使用。

  2. はアカウントを作成し、それを facebook (または何でも) にリンクすることができます: facebook の許可を求め、不足しているデータ (パスワード、twitter を使用している場合はメール...) を提供するためのフォームを事前に入力してから、 Facebook アカウントを使用してログインする場合は、API によって提供される一意のキーを保存するレコードも手順 1 とまったく同じように続行します。パスワードと電子メールを要求した場合は、標準のログイン フォームも使用できます。

  3. 最初のアプローチを使用して、他のユーザー (あなたの場合は名前) と競合している属性を変更するようにユーザーに依頼するか、サインインに使用しているソーシャル ネットワークに応じて不足しているものを埋めるように依頼することもできます。使用できます。これがユーザーを識別するために保存したいものである場合、衝突の可能性を減らすためにユーザー名として name+surname を使用します。

お役に立てれば

于 2012-12-13T21:23:17.290 に答える
0

HybridAuth は、サイトをソーシャル メディアと統合する優れた方法を提供します...

http://hybridauth.sourceforge.net/

これも役立つはずです...

于 2013-02-08T07:51:38.857 に答える