3

我正在嘗試使用本月發佈的MVC 4 oAuth。 任何人都可以指出我在哪裏可以添加電子郵件地址,以便我可以存儲與用戶屬性?MVC 4 oAuth使用Facebook不返回電子郵件地址

我需要能夠發送歡迎郵件,但不知道從哪裏開始使用MVC 4 oAuth。

理想情況下,成功登錄後,我想從我的控制器的Facebook接收用戶信息並將其放在表中,以便脫機進程可以發送歡迎電子郵件。

感謝, 維克多

回答

0

爲了讓Facebook返回電子郵件,您必須在範圍中指定它。例如,使用JS SDK,你可以做類似...

return FB.login(function(response) { 
    if (response.authResponse) { 
     return window.location = '/auth/facebook/callback'; 
    } 
    }, {scope: 'email,user_likes'} 
); 
5

這是因爲Facebook允許其用戶在指定哪些數據與第三方認證服務,比如你的網站維克多共享。並且默認情況下,我相信電子郵件地址(是的,您可以添加到Facebook帳戶有多個)不會被默認共享。用戶必須進入並明確地與第三方分享他們的電子郵件地址 - 這是我不認爲有人使用過的。

Facebook部隊共享的唯一「強制」共享數據是FullName(例如「Eric Duncan」)。其他一切都是可選的,供用戶共享。

例如,我有我的Facebook設置分享我的生日,但不是生日。我也有我的Facebook設置來分享我的興趣,但不是我的電子郵件。

因此,你必須爲什麼是有保證的 - 在Facebook的情況下顯示名稱(在MVC 4.0 OAuth中稱爲「用戶名」)的代碼。其他一切都不能保證。

我在我的OAuth應用程序(包括Facebook連接)中執行的操作是在第三方成功驗證後,在回調URL頁面上(例如MVC 4.0中的ExternalLoginConfirmation.cshtml),我會要求用戶輸入他們的Display姓名,電子郵件地址,出生日期等。並使用自定義視圖模型上的標準數據註釋使這些字段成爲必需。