5

私はしばらくの間 OAuth について調べてきましたが、私のアプリケーションにはまだ実装していません。完全な概念を本当に理解するのに苦労しているので、答えが見つからない質問がまだいくつかあるので、誰かが私を助けてくれることを願っています.

ユーザーが自分のアプリケーション (WP8) を起動して、facebook / twitter / microsoft / ... にログインできるようにしたい。彼が認証されたら、実際にこのユーザーを自分のDBに保存して、設定、投稿などのユーザー固有のものを追加できるようにしたい.

ユーザーを指定するには、自分の DB に何を保存する必要がありますか? トークン自体を保存する必要がありますか、それともしばらくすると無効になりますか? または、ユーザー名を指定する必要がありますか? 言い換えれば、一意の識別子として何を使用できますか?

また、ユーザーが facebook などで認証し、アカウントを削除するとどうなりますか?

もう 1 つの質問ですが、ユーザーが 2 つの異なるサービス プロバイダーを使用してアプリケーションに接続することを許可することはありますか? もしそうなら、これら 2 つのプロバイダーを自分の DB で 1 人のユーザーにどのように結合しますか?

私の質問が十分に明確であることを願っています!そうでない場合は、お気軽にお問い合わせください。

敬具、

ゲルト

4

1 に答える 1

9

独自のユーザーを認証する独自のバックエンドがあり、WP8 アプリケーションは単なるクライアントであると仮定します。

まず、ユーザー資格情報とユーザー プロファイルを区別します。ユーザー資格情報は、ユーザーが誰であるかを検証するものです。たとえば、有効な認証トークンで提供されるユーザー名/パスワード、Facebook ユーザー ID などです。ユーザープロファイルは、ユーザーに関する独自のデータベースに保存するものです。

また、ユーザーの認証に使用するトークンと、Facebook がユーザーのデータへのアクセスを許可するために必要な AccessToken を区別する必要があります。

だから...あなたの質問に答えるために:

ユーザーを指定するには、自分の DB に何を保存する必要がありますか?

ユーザー データ (設定、一意のユーザー ID など)、ユーザーのログイン方法 (Facebook など)、資格情報 (Facebook のユーザー ID など) を含むレコードを作成します。これはあなたのユーザーのプロフィールです。

トークン自体を保存する必要がありますか、それともしばらくすると無効になりますか?

Facebook から「オフライン アクセス」権限が付与されている場合、Facebook AccessToken をここに保存することもできますが、それは Facebook のアクセスに使用されます...アプリ/バックエンドへのユーザー アクセスではありません。ユーザーのアクセスには、Cookie ベースの認証に似たメカニズムを使用できます。それはあなた次第です。AccessToken を一種の「Cookie」として使用できますが、有効であることを常に Facebook で確認する必要があります。

言い換えれば、一意の識別子として何を使用できますか?

Facebook の ID を一意のものとして扱うことができます(ユーザー プロファイル DB内の別のアカウントが同じ Facebook アカウントにリンクすることを許可しない限り)。

また、ユーザーが facebook などで認証し、アカウントを削除するとどうなりますか?

サイトで機能するユーザー名とパスワードの組み合わせを作成し、利便性のために Facebook ログインのみに依存するようにすることをお勧めします。いずれの場合も、Facebook でアプリ プロファイルを作成すると、Facebook は「Deauthorize Callback URL」を提供します。これは、ユーザーがアプリを非アクティブ化するか、Facebook のアカウントを削除したときに呼び出されます。この呼び出しを受け取ったら、アクセスを失わないように別の資格情報をセットアップするための認証リンクがユーザーにメールで送信されます。

ユーザーが 2 つの異なるサービス プロバイダーを使用してアプリケーションに接続することを許可しますか? もしそうなら、これら 2 つのプロバイダーを自分の DB で 1 人のユーザーにどのように結合しますか?

確かに、あなたはそれを行うことができます。Twitter アカウントも許可したいとします。ユーザー プロファイル データベースに Twitter ユーザー ID フィールドを追加する必要があります。

もう 1 つのヒントは、Visual Studio で ASP.NET MVC4 プロジェクトを作成することです。テンプレートには、OAuth ログインを使用してユーザー プロファイル データベースを設定する方法の例が含まれています。

さらに調査するための高レベルの概要が得られることを願っています。

于 2013-07-15T16:55:01.390 に答える