14

そのため、さまざまな個人のソーシャル ネットワーク認証/登録を既存のユーザー アカウントに統合する方法については、間違いなく多くのチュートリアルがあります。しかし、多くの情報を見つけることができないように見えるシナリオは、ユーザーが別のソーシャル ネットワーク資格情報を使用してアカウントにサインインした場合です。例えば:

シナリオ #1
ユーザーは、サイトの認証を使用してサイトに登録します。
次に、ユーザーは Facebook Connect を使用してサイトにサインイン/登録します。
次に、ユーザーは Twitter を使用してサイトにサインイン/登録します。

これらすべてを 1 つのアカウントに統合するにはどうすればよいですか?

明らかに、ユーザーが登録されると、アカウント設定ページで他のソーシャル ネットワークの関連付けを追加できます。しかし、彼らがすでにセットアップされていることを覚えていない他のソーシャルネットワークを介して登録する場合、私はもっと心配しています.

私の一般的な考えは、「ユーザー名」または電子メールを使用して推測し、ユーザーにアカウントをすぐに組み合わせる方法を提示する方法を見つけようとしている.

誰にも考えはありますか?

4

2 に答える 2

4

フォローアップ -

ユーザーが以前にサインアップしたことを覚えていない場合は、一般的に幸運を祈ります;)

あなたが説明したように、ユーザーが何らかの方法でサインインしたら、追加のアカウントをリンクするオプションをユーザーに提供する予定です。

しかし、クロスチェックに関しては、できることは限られています。多くのソーシャル ネットワーク API は実際に電子メール アドレスを提供しますが (OAuth を介してアクセスすると)、これらのアドレスにアクセスできるのは、ユーザーが自分のアドレスを公開することを選択した場合のみであり、これは保証されていません。

また、ユーザーが各ソーシャル ネットワーク アカウントで同じメール アドレスを使用したという保証もありません。

最後に、このような方法で一致する電子メール アドレスを見つけた場合は、ユーザーがアカウントを自動的にリンクすることを望んでいると想定するのではなく、アカウントをリンクするようユーザーに促すことをお勧めします。複数の人格を維持したい人もいます。つまり、「あなたもツイッターにサインアップしているようです。あなたのアカウントをリンクしますか?そうすれば、あなたの人生は生きがいのあるものになります。」

ユーザー アカウントをリンクしたり、電子メール アドレスを提供したりするインセンティブを提供することを検討することもできます (もちろん、これらが何であるかは、Web サイトの機能に基づいて判断する必要があります)。

データベース側で私が取り組んでいる解決策は、複数のアカウントを維持することであり、リンク情報がさまざまな手段で発見された場合、そのリンクはルックアップテーブルに示されます。別の方法は、リンクを見つけたら、複数のアカウントに関連するすべてのエントリを 1 つのアカウント エンティティに結合しようとすることです。ユーザーのアクティビティ レベルとデータベース スキーマの複雑さによって異なります。

私の(精神的/実際の)名前空間では、昔ながらの方法で登録するユーザーには「標準」アカウントがあり、ソーシャルネットワークを使用するユーザーには「エイリアス」アカウントがあります。次に、エイリアスがどこを指すかを定義することが目標になります。つまり、いずれかの手段による後続のログインで両方のアカウントの関連情報が取得されるようにルックアップを作成します (「標準」アカウントの個人データを表示することを優先します)。

ところで、前回の投稿以来、Twitter OAuth を動作させる方法を見つけました。興味がある場合は、詳細について他の回答を参照してください。

JB

こんにちはマット、

私は今同じ問題に取り組んでいます。

ユーザーが通常のサイト アカウントで開始すると仮定すると (「XXX ネットワークに接続」ボタンがすべて表示される場合、必ずしも安全とは言えません !!!)、OAuth または JavaScript API (facebookConnect または @anywhere - Haven) を使用できます。後者についてはまだ完全には理解できておらず、他のサイトにログインするためのバックエンド ライブラリほど豊富な API を提供しているとは思えないため、推奨するかどうかはわかりません。

API は、ソーシャル ネットワークからのログイン/リダイレクトが成功した後に特定の情報を返す必要があります。たとえば、ユーザー ID やアクセス トークンなどです。これをデータベースに保存して、「実際の」アプリケーション ユーザーをソーシャル ネットワークの ID に関連付けることができます。通信網。

ユーザーがサイトに戻ったときに、次のことができます

1 ソーシャル ネットワーク サービスによって設定された Cookie を確認します (さまざまなスキームは通常、アプリケーション データの sha1 または md5 ハッシュに基づいて署名を確認します。これは、アプリを twitter/facebook に登録するときに取得するデータであり、通常はコンシューマ キーです) 、アプリケーション ID など - 受信した Cookie を使用して) ユーザーがソーシャル ネットワークにログインしたことがわかります。

2 上記のようにデータベース エントリの関連付けを見つけます

3 facebook/twitter 接続が安全であるという前提に基づいて、 ユーザーを手動でログインします。

注意: これは実装と同じくらい安全です (または、必要に応じて facebook/twitter の実装と同じくらい安全です...)

twitter の OAuth は現在のところ完全に機能していないようですが、プロセスの一般的な説明は非常に有益です: http://dev.twitter.com/pages/auth

幸運を。

J

于 2010-07-08T12:39:30.110 に答える
1

アプリに FB 認証を追加することを考えていましたが、リピーター ユーザーがそれをクリックして新しいアイテムのチェックアウトを完了した後、既存の注文がまったく表示されないことに驚いていることはわかっています。これを解決するために、ユーザーが「Facebook でログイン」項目をクリックすると、そのクリックを使用して、2 つのオプションを含むドロップダウン メニューが表示されます。

モックアップ

[ Facebook でログイン ]
[ 新しいアカウントを作成 ]
[ アカウントを持っています ]

ユーザーが [アカウントを持っています] をクリックすると、FB 認証に送信され、FB からアプリにメールが返されます。そのメールを既存のユーザーと比較します。一致する場合は、FB クレデンシャルをユーザーに追加します。一致しない場合は、アラートをスローします。

あなたが持っている FB のメールは、どのアカウントとも一致しません。既存のアカウントにログインするには、以下のメールアドレスでログインするか、Facebook アカウントのメールアドレスを更新してください

これにより、ユーザーは別のアカウントを保持したい場合、新しいメール サービスを必要とせずに、まったく新しいアカウントを作成できます。これは特殊なケースですが、機能です。

于 2014-04-03T02:31:54.380 に答える