9

FacebookGoogle、およびWindows Liveを介した登録と認証を可能にする Web アプリケーションがあります。各 OAuth 要求には、関連付けられた電子メール アドレスを認証プロバイダーから取得するために必要なスコープがあります。

現在の状況では、プロバイダーと提供された識別子に基づいてアカウントが作成されます。つまり、ユーザーが複数のプロバイダーでログインした場合、そのユーザーはWeb アプリケーションに複数のアカウントを持つことになります。

複数のプロバイダーを利用する場合でも、 1 つのアカウントを持つという理想的な状況を実現したいと考えています。電子メール アドレスを使用して、ユーザーのアカウントが存在するかどうかを確認することを考えていました。存在する場合は、電子メール アドレスに基づくアカウントを使用します。

これはどの程度安全/信頼できますか? 言及されているすべての OAuth プロバイダーは、電子メール アドレスを検証しますか? より良い方法は?

編集:テストを実行して、これを思いつきました。引き続きアドバイスをお待ちしております:)

FaceBook: Cannot authenticate with unvalidated e-mail. Additional e-mail will not appear until validated.
Google: Provides `verified_email`. Additional e-mail will not appear until validated.
Windows Live: Cannot authenticate with unvalidated e-mail. Additional e-mail will not appear until validated.
4

1 に答える 1

4

興味深い質問です。電子メールを使用してユーザーが存在するかどうかを確認することもできますが、問題は、ユーザーがプロバイダーごとに異なる電子メール アドレスを使用している可能性があることです。

私の提案は、ユーザーに (いずれかの方法を使用してアプリケーションにログインしたら) 他のプロバイダーをこのアカウントに接続するように依頼することです。これにより、他のプロバイダーを使用してアプリケーションにログインできるようになります。

問題を完全に解決するわけではありませんが (解決策が存在するかどうかはわかりません)、ユーザーはその方法でより詳細に制御でき、ユーザーあたりのアカウント数を減らすことができます。

于 2013-03-02T11:25:18.410 に答える