Facebook、Google、および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.