我正試圖使用Microsoft OWIN OAuth庫在現有的ASP.NET MVC 5應用程序中實現Facebook身份驗證,並且無法找到如何獲取用戶的電子郵件地址的方法。註冊如下所示:Facebook不會爲用戶返回電子郵件
var options = new FacebookAuthenticationOptions
{
AppId = "YYY",
AppSecret = "ZZZ"
};
options.Scope.Add("public_profile");
options.Scope.Add("email");
app.UseFacebookAuthentication(options);
將範圍email
添加到選項中。
在認證時,在控制器ExternalLoginCallback
方法,所述email
爲null與此代碼:
AuthenticateResult authResult = await authenticationManager.AuthenticateAsync(DefaultAuthenticationTypes.ExternalCookie);
ClaimsIdentity externalIdentity = authResult.Identity;
string email = externalIdentity.FindFirstValue(ClaimTypes.Email);
也試過此無濟於事:從Facebook返回
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
var email = loginInfo.Email;
JSON數據的確似乎沒有包含電子郵件地址:
{"id":"989197284440871","first_name":"Martin","gender":"male","last_name":"Stauf\u010d\u00edk","link":"https:\/\/www.facebook.com\/app_scoped_user_id\/989197284440871\/","locale":"cs_CZ","name":"Martin Stauf\u010d\u00edk","timezone":2,"updated_time":"2014-10-18T16:14:08+0000","verified":true}
與Facebook不返回地址或代碼中缺少某些東西是否存在問題?任何幫助提供將不勝感激。
謝謝。
假設「電子郵件」是範圍的正確名稱,我會說你問電子郵件的範圍,但用戶是否也授予它? – 2014-10-29 09:00:34