これは、Facebook のユーザーが、Web サイトのビクターなどのサードパーティの認証サービスと共有するデータを指定できるためです。そして、デフォルトでは、電子メール アドレス (はい、Facebook アカウントに追加できる複数のアドレスがあります) はデフォルトで共有されていないと思います。ユーザーは、自分の電子メール アドレスを第三者と明示的に共有する必要があります。これは、誰も使用したことがないと思います。
Facebook が強制的に共有する唯一の「必須」共有データは、FullName (「Eric Duncan」など) です。他のすべては、ユーザーが共有するためのオプションです。
たとえば、Facebook で生年月日ではなく生年月日のみを共有するように設定しています。また、自分の興味を共有するための Facebook の設定もありますが、メールは共有できません。
したがって、保証されているもの、つまり Facebook の場合の表示名 (MVC 4.0 OAuth では「UserName」と呼ばれます) をコーディングする必要があります。それ以外はすべて保証されません。
Facebook 接続を含む OAuth アプリケーションで行うことは、コールバック URL ページ (MVC 4.0 の ExternalLoginConfirmation.cshtml など) でサード パーティとの認証が成功した後、ユーザーに表示名、電子メール アドレスを入力するように求めます。 、生年月日など。カスタム ビュー モデルで標準のデータ注釈を使用して、これらのフィールドを必須にします。